SQL查询 - GROUP BY SUM挂在那里没有任何元素
问题描述:
我尝试运行查询:SQL查询 - GROUP BY SUM挂在那里没有任何元素
SELECT statement_element_statement_id, sum(statement_element_commission_amount_change)
FROM [chester-prod].[dbo].[ws_statement_element_commissions]
JOIN [chester-prod].[dbo].[ws_statement_elements]
on [statelemt_element_commission_se_id] = statement_element_id
WHERE statement_element_statement_id in
(10258, 10226, 10225, 10224, 10223,
10220, 10219, 10218, 10217, 10216)
GROUP BY statement_element_statement_id
10258,10226,10225,10224,10223 - 这些ID有元素
10220,10219,10218 ,10217,10216 - 有IDS没有任何元素
当我运行此查询,我可以得到5个结果:
SELECT statement_element_statement_id, sum(statement_element_commission_amount_change)
FROM [chester-prod].[dbo].[ws_statement_element_commissions]
JOIN [chester-prod].[dbo].[ws_statement_elements]
on [statelemt_element_commission_se_id] = statement_element_id
WHERE statement_element_statement_id in
(10258, 10226, 10225, 10224, 10223)
GROUP BY statement_element_statement_id
如何处理挂组时可以有时无法找到特定的id在哪里声明的元素?
答
使用右连接(或者相反顺序,并使用左连接):
SELECT
statement_element_statement_id,
sum(statement_element_commission_amount_change)
FROM
[chester-prod].[dbo].[ws_statement_element_commissions]
RIGHT JOIN [chester-prod].[dbo].[ws_statement_elements] on
[statelemt_element_commission_se_id] = statement_element_id
WHERE
statement_element_statement_id in (
10258, 10226, 10225, 10224, 10223,
10220, 10219, 10218, 10217, 10216
)
GROUP BY
statement_element_statement_id
答
你可以试试这个。我认为[ws_statement_elements]表应该在左侧。
SELECT statement_element_statement_id, SUM(ISNULL(statement_element_commission_amount_change,0))
FROM [chester-prod].[dbo].[ws_statement_elements]
LEFT JOIN [chester-prod].[dbo].[ws_statement_element_commissions]
on [statelemt_element_commission_se_id] = statement_element_id
WHERE statement_element_statement_id in
(10258, 10226, 10225, 10224, 10223,
10220, 10219, 10218, 10217, 10216)
GROUP BY statement_element_statement_id
你是什么意思的“把手挂”? – GurV
您希望在结果中包含这些数字10220,...(没有元素)? –
我期望5行数字结果,5行没有结果,甚至不出现。当出现5个元素(10220,10219,10218,10217,10216)中的至少一个时,我的查询冻结。编辑:添加屏幕只有5个元素在查询中,他们都有记录 – Staly