SQL - 更改现有查询的行/列结构

时间:2013-04-25 14:03:46

标签: sql

我是一个死硬的Excel VBA粉丝,不得不转换到一个非常基本的基于SQL的软件。我已经设法使现有的查询适应我的需求(仍然不确定如何!)但我可以做一些帮助进一步调整它:)

查询是:
    PARAMETERS [Date From] DateTime, [Date To] DateTime, [Site Group] Text;

SELECT Contacts.Name, DataProfile.Date, DataProfile.TotalUnits

FROM (Lookup INNER JOIN Groups ON Lookup.Lookup_Id = Groups.Lookup_Id) INNER JOIN (Contacts INNER JOIN (Points INNER JOIN DataProfile ON Points.Id = DataProfile.Point_Id) ON Contacts.Id = Points.Contacts_Id) ON Groups.Link_Id = Contacts.Id

WHERE (((Lookup.Lookup_Name)=[Site Group]) AND ((DataProfile.Date) Between [Date From] And [Date To]) AND ((Points.Type)='Electricity') AND ((DataProfile.Type)=0))

AND Contacts.Group_1=[Client Group]

ORDER BY Contacts.Name, DataProfile.Date;

这会按天生成每日总计列表,如下所示:

网站.......日期.........值
Site 1 .... 01/01/13 ... 444.7
网站1 .... 02/01/13 ... 861.5
网站1 .... 03/01/13 ... 850.0
等...

是否可以将查询编写为输出:

网站..... 13年1月1日13年2月1日.... .... 13年3月1日
站点1 .... 444.7 ....... 861.5 ......... 850.0
站点2 .... 111.1 ....... 222.2 ......... 333.3
等...

这会让我的生活变得更容易,每个网站只有一行,而不是那么多。目前我正在编写excel以适应数据 - 但它很长而且效率不高。如果我能以这种格式输出SQL,我会像某种办公室之神!!!

欢迎任何帮助/建议/指导:)

1 个答案:

答案 0 :(得分:-1)

您运行的是哪个版本的SQL? 你能用PIVOT吗?

http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx