Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何加上「;“失踪”;reporting services中列组中的列?_Sql Server_Sql Server 2008_Reporting Services - Fatal编程技术网

Sql server 如何加上「;“失踪”;reporting services中列组中的列?

Sql server 如何加上「;“失踪”;reporting services中列组中的列?,sql-server,sql-server-2008,reporting-services,Sql Server,Sql Server 2008,Reporting Services,我试图创建一个报告,显示一年中每个月的商品销售数量 我有一个查询,返回每个月销售的商品列表,它看起来像这样: SELECT Seller.FirstName, Seller.LastName, SellingHistory.Month, SUM(SellingHistory.QuantitySold) FROM SellingHistory JOIN Seller on SellingHistory.SellerId = Seller.SellerId WHERE SellingHistory.

我试图创建一个报告,显示一年中每个月的商品销售数量

我有一个查询,返回每个月销售的商品列表,它看起来像这样:

SELECT Seller.FirstName, Seller.LastName, SellingHistory.Month, SUM(SellingHistory.QuantitySold)
FROM SellingHistory JOIN Seller on SellingHistory.SellerId = Seller.SellerId
WHERE SellingHistory.Year = @Year
GOUP BY Seller.FirstName, Seller.LastName, SellingHistory.Month
我要做的是显示一个报告,其中每个月有一列+一个总计列,该列将为每个卖家显示所选月份的销售数量

Seller Name | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Total
我所做的是使用一个矩阵和一个列组(按月分组)来显示现有数据的列,如果我有1月到3月的数据,它将显示前3列和总数。我想做的是始终显示所有列

我曾想过通过在SQL请求中添加缺少的月份来实现这一点,但我发现这有点奇怪,我相信一定有一些“最干净”的解决方案,因为这一定是非常频繁的事情

谢谢

PS:我正在使用SQL Server Express 2008

SELECT Seller.Id,
SUM(CASE WHEN SellingHistory.Month = 'Jan' THEN SellingHistory.QuantitySold END ) AS Jan,
SUM(CASE WHEN SellingHistory.Month = 'Feb' THEN SellingHistory.QuantitySold END ) AS Feb,
...
GROUP BY Seller.Id
您也可以使用PIVOT(双重检查语法,我认为下面的查询是可以的,但我已经有一段时间没有使用transact-sql了):


要在T-SQL中实现这一点,您需要一个
PIVOT
,在页面的中间有一个使用月的示例。

好的,那么唯一的方法就是通过SQL实现吗?我认为这可以直接写进报告中。
SELECT Seller.Id, Jan, Feb, ...
FROM ...
PIVOT (SUM(SellingHistory.QuantitySold) FOR SellingHistory.Month IN (
  [Jan],[Feb],....)) AS t;