Conteo regresando en blanco en lugar de 0

Buenos días, todos aquí son mi código

SELECT 'Expinetworking Item -'+ DateName(mm,DATEADD(MM,4,AE.fld_LOAN)) as [Month] ,COUNT(PIT.fld_ID)'COUNT' ,SUM (PIT.fld_GRAM)'GRAMS' ,SUM (PH.fld_AMNT)'PRINCIPAL' FROM #AllExpinetworking AE INNER JOIN Transactions.tbl_ITEM PIT ON AE.fld_MAINID=PIT.fld_MAINID INNER JOIN Transactions.tbl_HISTO PH ON AE.fld_MAINID =PH.fld_MAINID GROUP BY DATENAME(MM,(DATEADD(MM,4,AE.fld_LOAN))) 

el problema al que me enfrento es que mi function de conteo no devuelve 0 si no tiene valores, la function sum no devuelve NULL si no se recuperan los valores resultantes, sino que simplemente muestra en blanco, ¿por qué es así? y ¿cómo puedo solucionarlo?

aquí hay una captura de pantalla de salida de muestra

UN

Por supuesto, esto no es lo que quiero, quiero que arroje cero y nulos. por favor, ayúdame, no sé lo que está mal. gracias.

No puede esperar que se generen loggings al usar una cláusula GROUP BY, cuando no existen loggings en su fuente.

Si desea una salida de 0 de las funciones SUMA y COUNT, entonces no debe usar GROUP BY.

La razón es que cuando no tiene loggings, la cláusula GROUP BY no tiene nada para agrupar, y luego no puede darle ningún resultado.

Por ejemplo:

 SELECT COUNT(*) FROM (SELECT 'Dummy' AS [Dummy] WHERE 1 = 0) DummyTable 

devolverá un logging con el valor '0', donde como:

 SELECT COUNT(*) FROM (SELECT 'Dummy' AS [Dummy] WHERE 1 = 0) DummyTable GROUP BY [Dummy] 

no devolverá ningún logging.

Me imagino que necesita cambiar sus combinaciones de INNER a OUTER para asegurarse de que se devuelvan las filas, incluso cuando no haya un logging correspondiente en tbl_PawnItem –

 SELECT 'Expinetworking Item -'+ DateName(mm,DATEADD(MM,4,AE.fld_LoanDate)) as [Month] ,COUNT(PIT.fld_PawnItemID)'COUNT' ,SUM (PIT.fld_KaratGram)'GRAMS' ,SUM (PH.fld_PrincipalAmt)'PRINCIPAL' FROM #AllExpinetworking AE LEFT JOIN Transactions.tbl_PawnItem PIT ON AE.fld_PawnMainID=PIT.fld_PawnMainID LEFT JOIN Transactions.tbl_PawnHisto PH ON AE.fld_PawnMainID=PH.fld_PawnMainID GROUP BY DATENAME(MM,(DATEADD(MM,4,AE.fld_LoanDate))) 

Quizás #AllExpinetworking está vacío o una de las combinaciones no arroja resultados.

Recuerde que las combinaciones internas necesitan resultados en ambos lados para poder regresar, así que debido a que #AllExpinetworking está vacío, la unión no devuelve nada.

Cambiarlo a una unión EXTERIOR.