我正在尝试编写一个SQL Server 2008查询,它将数据输出到小计列中。我的SQL技能还很差,所以我真的可以使用一些帮助。
我有两张桌子,A和B.
A.user (unique)
A.answer <- can only be one of two answers, 'Answer1' or 'Answer2'
B.user (unique)
B.zip
我要做的是编写一个SQL语句,生成一个四列输出,通过zip汇总回答。像这样:
Zip Answer1 Answer2 Total
----------------------------------
12345 25 22 47
23456 7 0 7
45678 0 15 15
任何圣人建议?
谢谢!
托尼
答案 0 :(得分:3)
我认为这就是你所需要的:
SELECT B.Zip
, SUM(CASE WHEN answer='Answer1' THEN 1 ELSE 0 END)AS Answer1
, SUM(CASE WHEN answer='Answer2' THEN 1 ELSE 0 END)AS Answer2
, COUNT(*) AS Total
FROM A INNER JOIN B ON A.[user] = B.[user]
GROUP BY B.Zip