Mes sin datos que aparezca con resultado=0

Hola buenas tardes comunidad.

Tengo una sql de ventas muy sencilla:

SELECT month(T0.DocDate) Mes, sum(T0.DocTotal) Total
FROM OINV T0 
INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry 
WHERE T0.DocDate>='20200101' and T1.AcctCode IN ('705000', '705008') and T0.SlpCode=7
group by month(T0.DocDate)

El caso es que se que Marzo de 2020 no registro ventas, pero quiero que me aparezca el 3 e importe 0.
imagen
Gracias por sus aportes.

Yo haría un Union. En el siguiente Select haría una consulta de los meses de la tabla de periodos contables y mandaría el valor “0” en la columna “Total”.

De esta manera aseguras que siempre mostrará los 12 meses.

Saludos.

Hice prueba y creo que no es tan simple pero creo que esto podría funcionar:


Select Month(T0.F_RefDate), TB.Total from OFPR T0 Left Join 

(SELECT month(T0.DocDate) Mes, sum(T0.DocTotal) Total
FROM OINV T0 
INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry 
WHERE T0.DocDate>='20200101' 
group by month(T0.DocDate)) TB 

On Month(T0.F_RefDate) = TB.Mes

Group By  Month(T0.F_RefDate), TB.Total

Hola @meqs
Para solucionar tu problema en el ámbito de la inteligencia de negocio se utiliza la dimensión tiempo, donde básicamente es una tabla con fechas y tiene información de días, trimestres, semestres, etc. Si trabajas sobre HANA puedes tomar la dimensión estándar que utiliza SAP “_SYS_BI”."M_TIME_DIMENSION"
h_tps://help.sap.com/doc/saphelpiis_hc_b1_image_repository_consultant_training_additional_b1h_attr_analyt2_pdf/9.1/en-US/B1H_Attr_Analyt2.pdf

Otra opción si no se trabaja con HANA, es utilizar la tabla de periodos contables, que solo tiene información de los meses.

SELECT T0."Code", T0."Name", COUNT( T1."DocNum") FROM OFPR T0 LEFT JOIN OINV T1 ON T0."AbsEntry" = T1."FinncPriod" GROUP BY T0."Code", T0."Name" ORDER BY T0."Code"

Andres Ramirez Jaramillo :colombia:

Con el vínculo hacia la tabla de periodos financieros me ha servido.
Gracias. No se me había ocurrido.

1 me gusta

Es sobre SQL @andresramirez lo que comentas de las dimensiones, si lo conozco, trabajo con BOARD.

@meqs buen día disculpa la consulta, pero en tu query, seria bueno agregar la condición T1.targeType <> ‘14’, así no consideras los documentos de venta que tienen una nota de crédito asociada.
Saludos.