【发布时间】:2017-03-29 23:23:34
【问题描述】:
我正在尝试开发 SSRS 报告。我从事务表中获取了销售价值,并按年、月和子类别对它们进行了分组。我已将其创建为视图。查看代码如下:
SELECT b.FiscalYear AS Year,
b.FiscalMonth AS Month,
a.SubCategoryKey,
MAX(a.SubCategoryDesc) AS SubCategoryDesc,
SUM(CAST(a.Cost + a.FreightCost AS decimal(18, 2))) AS TotalCost,
SUM(CAST(a.SalesAmount AS decimal(18, 2))) AS TotalSales,
SUM(CAST(a.Weight AS decimal(18, 2))) AS Pounds, SUM(CAST(a.SalesAmount -(a.Cost + a.FreightCost) AS decimal(18, 2))) AS Margin
FROM dbo.GrossMargin_CorrectedCosts AS a
LEFT OUTER JOIN dbo.M_DateDim AS b ON a.InvoiceDate = b.Date
GROUP BY b.FiscalYear, b.FiscalMonth, a.SubCategoryKey
然后我得到一个干净的视图,如下所示:
SELECT [Year]
,[Month]
,[SubCategoryKey]
,[SubCategoryDesc]
,[TotalCost]
,[TotalSales]
,[Pounds]
,[Margin]
FROM [FinancialData].[dbo].[SubCategorySalesbyMonth_V]\
我现在想在这个查询中添加额外的列。我将把它作为 SSRS 报告运行,并传递 Year 和 Month 参数。我想做的是,当2017年被选为已通过的年份参数时,我想向Totalsales,Totalcost和Fings显示前一年的值。
而查询看起来像这样:
SELECT [Year]
,[Month]
,[SubCategoryKey]
,[SubCategoryDesc]
,[TotalCost]
,[TotalSales]
,[Pounds]
,[Margin]
,PreviousYearTotalSales
,PreviousYearTotalCost
,PreviousYearPounds
FROM [FinancialData].[dbo].[SubCategorySalesbyMonth_V]
基本上,当将年份和月份传递给报告时,我想显示该给定期间减去一年的前几年的总销售额、总成本和磅数。我有时间做这件事。
我觉得我什么都试过了,但显然没有。请帮忙。
【问题讨论】:
标签: select reporting-services sql-server-2012