Query conteo de entregas + facturas

Hola a todos, estoy haciendo una consulta que me arroje el conteo de las entregas + el conteo de las facturas emitidas desde una fecha en adelante, hasta ahora he logrado hacer el conteo de las entregas, pero no me suma el conteo si las fechas son diferente, la verdad estoy un poco trabado, les dejo lo que he avanzado a ver si alguien tiene alguna idea de como terminarlo.

SELECT T0.[DocDueDate], COUNT (T0.[FolioNum]) 
FROM [dbo].[ODLN]  T0 
WHERE T0.[DocDueDate] >= [%0] GROUP BY T0.[DocDueDate

image

Muchas gracias por su ayuda.

No podrias sumar el total de entregas + el total de facturas de fechas diferentes ya que estas agrupando por la fecha de vencimiento de la tabla odln. Lo que podrias hacer es una subconsulta donde sumes facturas y entregas de una misma fecha o de un mismo mes.

1 me gusta

Creo entender, pero aun no resuelvo que me arroje el total de el mes y no desglosado por fecha, fíjate como lo hice:


SELECT T0.[DocDueDate], COUNT (T0.[FolioNum]) 
FROM ODLN T0 
WHERE datediff(MM,getdate(),t0.docduedate)=0 GROUP BY T0.[DocDueDate]

y el resultado que me da:

image

Prueba agregando DATEPART(MONTH,T0.[DocDueDate]) y agrupandolo tmb por DATEPART(MONTH,T0.[DocDueDate])

1 me gusta

Hola EMSO lo hice de esta manera:


SELECT T0.[DocDueDate], COUNT (T0.[FolioNum])
 FROM ODLN T0 
WHERE DATEPART(MONTH,T0.[DocDueDate]) 
GROUP BY T0.[DocDueDate], DATEPART(MONTH,T0.[DocDueDate]

y me arrojo este error:

1). [Microsoft][SQL Server Native Client 11.0][SQL Server]An expression of non-boolean type specified in a context where a condition is expected, near 'GROUP'. 2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement '' (SWEI) (s) could not be prepared.

Ahora estoy intentado hacer la subconsulta para el conteo de facturas llevo esto:

SELECT T0.[DocDueDate], COUNT (T0.[FolioNum]) AS 'Entregas',  (select COUNT FolioNum from OINV where ItenCode = T0.ItenCode and DATEPART(MM,[DocDueDate]) > 0) 
FROM [dbo].[ODLN]  T0
 WHERE DATEPART(MM,T0.[DocDueDate]) > 0 AND T0.[DocDueDate] >= [%0] 
GROUP BY T0.[DocDueDate], DATEPART(MM,T0.[DocDueDate])

pero me arroja error por la subconsulta, tienes alguna idea de que podría cambiar?

Ya mira ,la consulta seria tal que asi.

SELECT DATEPART(MM,T0.[DocDate)] as "Mes",COUNT(T0.[DocNum]) as "TotalEntregas",
(SELECT COUNT(X.[DocNum]) FROM OINV X  WHERE DATEPART(MM,X.[DocDate])=DATEPART(MM.T0.[DocDate]) AND YEAR(X.[DocDate])=YEAR(T0.[DocDate]) AND X.[CANCELED]='N' ) AS "Total Facturas" 
FROM ODLN T0 
WHERE T0.[DocDate]>='[%0]' AND T0.[CANCELED]='N' 
GROUP BY MONTH(T0.[DocDate]),YEAR(T0.[DocDate])

Si te sale error al ejecutar el codigo es por la sintaxis, yo uso hana y no estoy muy familiarizado con sql.

1 me gusta

Amigo aplique ese condigo que me pasaste, asi:

SELECT DATEPART(MM,T0.[DocDate)] as 'Mes', COUNT(T0.[DocNum]) as 'TotalEntregas',
(SELECT COUNT([DocNum]) FROM OINV  WHERE DATEPART(MM,[DocDate])=DATEPART(MM.T0.[DocDate]) AND YEAR([DocDate])=YEAR(T0.[DocDate]) AND [CANCELED]='N' ) AS "Total Facturas" 

FROM ODLN T0 

WHERE T0.[DocDate]>='[%0]' and T0.[CANCELED] = 'N' 

GROUP BY MONTH(T0.[DocDate]),YEAR(T0.[DocDate])

y me arroja ahora este error:

Datos modificados por otro usuario u otra operación; para continuar, abra la ventana de nuevo '' (SWEI) (ODBC -2039) [Mensaje 131-183]

sabes a que se puede deber esto?

En esa parte deberia haber una , no un .

trata probando ese cambio. Porque el query que te envie lo probe y si funciona.

1 me gusta

Disculpa, a cual parte te refieres??

a la parte de la subconsulta

(SELECT COUNT([DocNum]) FROM OINV WHERE DATEPART(MM,[DocDate])=DATEPART(MM.T0.[DocDate]) AND YEAR([DocDate])=YEAR(T0.[DocDate]) AND [CANCELED]=‘N’ ) AS “Total Facturas”

deberia ser

(SELECT COUNT([DocNum]) FROM OINV WHERE DATEPART(MM,[DocDate])=DATEPART(MM,T0.[DocDate]) AND YEAR([DocDate])=YEAR(T0.[DocDate]) AND [CANCELED]=‘N’ ) AS “Total Facturas”

@businessone alguno de ustedes me podría ayudar a identificar el error?? llevo rato buscándolo y no lo consigo.

Este es el código que llevo hasta ahora:

SELECT DATEPART(MM,T0.[DocDate)], COUNT(T0.[DocNum]), (SELECT COUNT(DocNum) FROM OINV WHERE DATEPART(MM,DocDate)=DATEPART(MM,T0.[DocDate]) AND YEAR(DocDate)=YEAR(T0.[DocDate]) AND CANCELED='N')

 FROM ODLN T0 

WHERE T0.[DocDate] >= [%0]  and  T0.[CANCELED] = 'N' 

GROUP BY MONTH(T0.[DocDate]),YEAR(T0.[DocDate])

y este el error que arroja:

1). [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword ‘FROM’. 2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement ‘’ (SWEI) (s) could not be prepared.

Gracias por su ayuda

Que tal buen día,

Intentarlo así

SELECT DATEPART(month,T0.DocDate),
2 Me gusta

Hola, acá está el error, colocaste el paréntesis antes del corchete.

saludos.

1 me gusta

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.