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
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.
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?
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.
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]
(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.