我已经以某种方式加入了一些表并且列出了一些列,所以当我运行SELECT SSN, Name, Year2010/Season1, Year2010/Season2, Year2010/Season3, Year2010/Season4 FROM (SELECT ...... ) AS WORKERS
时,我得到一张表格如下:
SSN Name Year2010/Season1 Year2010/Season2 Year2010/Season3 Year2010/Season4
112 John 5.4
234 Tom 4.2
543 Ben 9.3
234 Tom 3.2
该表显示了工人及其每年和每个工作时间。但是我试图将这些重复值(同一个人)组合在一起,并根据年份和季节将所有小时数移到同一行。像这样的东西(汤姆被移动的地方):
SSN Name Year2010/Season1 Year2010/Season2 Year2010/Season3 Year2010/Season4
112 John 5.4
234 Tom 4.2 3.2
543 Ben 9.3
我已经尝试了几个小时,但根据我正在做的选择语句来获取此表,并没有真正找到合并这些的好方法。有什么建议吗?
答案 0 :(得分:2)
您想要聚合。您可以通过调整查询来更简单地执行此操作,但您也可以这样做:
with q as (<your query here>)
select ssn, name,
max([Year2010/Season1]) as [Year2010/Season1],
max([Year2010/Season2]) as [Year2010/Season2],
max([Year2010/Season3]) as [Year2010/Season3],
max([Year2010/Season4]) as [Year2010/Season4]
from q
group by ssn, name;
答案 1 :(得分:1)
好像你需要使用SUM
:
SELECT SSN,
Name,
SUM([Year2010/Season1]) [Year2010/Season1],
SUM([Year2010/Season2]) [Year2010/Season2],
SUM([Year2010/Season3]) [Year2010/Season3],
SUM([Year2010/Season4]) [Year2010/Season4]
FROM dbo.YourTable
GROUP BY SSN,
Name;