Sv Community El Salvador

Soporte y Tecnología => Programación => Base de Datos => Mensaje iniciado por: ELITE en abril 20, 2015, 09:30:20 am

Título: Encontrar cantidad de lineas !!!
Publicado por: ELITE en abril 20, 2015, 09:30:20 am
Tengo un problemon y no se si me ayudan  :phew:

Las facturas de una estacion se insertan en 2 tablas, en la tabla 1 inserta el encabezado de cada factura, y en la tabla 2 inserta las lineas. Les comento que para el caso se trabaja con combustibles y que cada factura lleva una linea de combustible y 3 lineas de impuesto.

Ejemplo tabla 2 (tabla de las lineas de cada documento)
LINEA   DOCUMENTO             CAJA      TIPO    ARTICULO
3     CRF-14SD006C-47296    0003         F      AD-VALOREM
2     CRF-14SD006C-47296    0003         F      DL.487
1     CRF-14SD006C-47296    0003         F      FOVIAL
0     CRF-14SD006C-47296    0003         F      COM03

en todas las facturas es asi, donde COM03 es el combustible y el restio de lineas son impuestos.

El problema es que desde hace unos dias no se estan insertando de forma corracta los datos, específicamente los impuestos, entonces queiro saber si hay alguna forma de descubrir en la tabla 2 que documentos (guiandonos por el numero de factura) tienen menos de 4 lineas asociadas a dicho numero de documento??

Creen que se pueda hacer lo que quiero o no ?? o definitivamente debo ir linea por linea buscando las que tienen menos de 4 lineas ?? les comento que cada dia en la estacion se hacen unas 900 facturas minimo  x_x
Título: Re:Encontrar cantidad de lineas !!!
Publicado por: MOISES en abril 20, 2015, 09:33:44 am
Y si ocupas en having count?

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM (Orders
INNER JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10

Título: Re:Encontrar cantidad de lineas !!!
Publicado por: Non Servium en abril 20, 2015, 09:37:54 am
SELECT tabla1.DOCUMENTO, COUNT(*) AS Registros
FROM tabla2 t2 INNER JOIN tabla1 AS t1 ON
t2.DOCUMENTO = t1.DOCUMENTO
WHERE t2.ARTICULO = 'COM03'
GROUP BY tabla1.DOCUMENTO
HAVING (COUNT(*) < 4)
Título: Re:Encontrar cantidad de lineas !!!
Publicado por: ELITE en abril 20, 2015, 09:41:56 am
Gracias, estoy leyendo sobre Having Count (https://technet.microsoft.com/es-es/library/ms184262%28v=sql.105%29.aspx)  :)

Les comento en unos minutos  :thumbsup:
Título: Re:Encontrar cantidad de lineas !!!
Publicado por: g00mba en abril 20, 2015, 09:50:17 am
usa una condicion parecida a a
select distinct numero de factura WHERE count(numero_de_factura) > 4
Título: Re:Encontrar cantidad de lineas !!!
Publicado por: ELITE en abril 20, 2015, 11:57:35 am
Gracias a todos por sus respuestas, guiandome de su valiosa ayuda llegue al query deseado  :)

Citar
SELECT t1.FCH_HORA_CREACION,t1.DOCUMENTO,COUNT(t2.Documento) AS total FROM DLCEC.DOCUMENTO_POS AS t1
LEFT JOIN DLCEC.DOC_POS_LINEA AS t2 ON (t1.DOCUMENTO=t2.DOCUMENTO)
where t2.CAJA='0003'
GROUP BY t1.DOCUMENTO,t1.FCH_HORA_CREACION
HAVING COUNT(t2.DOCUMENTO)<4 order by t1.FCH_HORA_CREACION desc
Título: Re:Encontrar cantidad de lineas !!!
Publicado por: tekun en abril 28, 2015, 11:21:47 am
ke fellos son los *.join