2016-04-14 66 views
0

我想,制得了我的表的总结报告 -SQL服务器 - TSQL查询语句

Table name : Order 
Fields Name : Orderdate,Repname,Storename,salesamount 

输出:

Store Name Jan Feb Mar .... Dec Total 
ABC   50  10  20 .....  80 
XYZ   30  NULL 20    50 
+5

这是一个很好的开始。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –

+0

感谢分享有价值的信息 –

回答

1

您可以使用SQL Server的PIVOT功能来做到这一点。或者,您可以在报表中使用具有大小写的集合

简化示例使用具有case when语句的聚合的SQL示例(请注意,下面的SQL有一个错误,它会将2015年1月和2016年1月的销售额合计在一起,数据,它只是在那里展示如何实现结果的概念)

SELECT 
    StoreName, 
    SUM(CASE WHEN MONTH(Orderdate) = 1 THEN salesamount ELSE NULL END) as Jan, 
    SUM(CASE WHEN MONTH(Orderdate) = 2 THEN salesamount ELSE NULL END) as Feb, 
    . 
    . 
    . 
    SUM(CASE WHEN MONTH(Orderdate) = 12 THEN salesamount ELSE NULL END) as Dec, 
    SUM(salesamount) as Total 
FROM 
    Order 
GROUP BY 
    StoreName 
+0

谢谢....其工作正常 –

+0

很高兴听到它解决您的问题。请务必将答案标记为已接受,以便其他人知道 –