2014-10-16 57 views
0

下面的查詢返回一年中所有組的熱度。查詢返回特定表列中的所有值

如何返回IND_GRUPO中存在但按月份分組的所有組,如果當前月份不存在該組,則該名稱應該出現,但是該索引值應爲0.應保留所有聯接。

SELECT SUM(p.valor), c.nm_grupo, c.cd_grupo, YEAR(p.dt_emissao) 
FROM ind_receita p 
JOIN ind_equipto o ON p.cd_equipto = o.cd_equipto 
JOIN ind_grupo c ON o.cd_grupo = c.cd_grupo 
WHERE YEAR(p.dt_emissao) = YEAR(GETDATE()) 
GROUP BY YEAR(p.dt_emissao), c.nm_grupo, c.cd_grupo 
ORDER BY 1 DESC 

回答

0

試試這個:

SELECT c.nm_grupo, c.cd_grupo, YEAR(GETDATE()), 
    (SELECT SUM(p.valor) 
    FROM ind_receita p 
    JOIN ind_equipto o ON p.cd_equipto = o.cd_equipto 
    JOIN ind_grupo c2 ON o.cd_grupo = c2.cd_grupo 
    WHERE c2.cd_grupo = c.cd_grupo 
    AND YEAR(p.dt_emissao) = YEAR(GETDATE())) AS valor 
FROM ind_grupo c 
+0

工作正常,我試圖用CTE得到的結果,但你的做法是更好的 – 2014-10-16 17:28:04

+0

@Lucas_Santos:好吧,有一個愉快的一天;) – 2014-10-16 17:29:38

相關問題