【问题标题】:2 time periods in one report SQL Reportbuilder 2012 3.0一份报告中有 2 个时间段 SQL Report Builder 2012 3.0
【发布时间】:2016-03-16 16:59:24
【问题描述】:
我希望在 Microsoft SQL Reportbuilder 3.0 2012 中查看图片中显示的两个时期的报告。我做了一个查询,将显示红色期间,但我似乎无法在一份报告中同时获得黑色期间和红色期间。它们需要是彼此相邻的 2 个不同的列。
此报告的目的是显示某个项目从开始到今天的所有预订,并具体查看某个月份的预订情况。
有没有办法做到这一点,还是不可能?
【问题讨论】:
标签:
sql
reporting-services
reportbuilder3.0
【解决方案1】:
我想我会分享答案。这是我用来解决问题的代码。
SELECT
tblReg.PurchaseOrderId,
tblReg.Reference AS PO,
SUM(HoursBefore) AS HoursBefore,
SUM(HoursBefore)/8 AS DaysBefore,
SUM(HoursBetween) AS HoursBetween,
SUM(HoursBetween)/8 AS DaysBetween,
SUM(HoursAfter) AS HoursAfter,
SUM(HoursAfter)/8 AS DaysAfter,
MIN(BudgetDays) AS BudgetDays
FROM
(
SELECT
po.PurchaseOrderId,
po.Reference,
BudgetDays,
CASE
WHEN reg.RegistrationDate < @StartDate THEN DurationHours
ELSE 0
END AS HoursBefore,
CASE
WHEN reg.RegistrationDate >= @StartDate AND reg.RegistrationDate <= @EndDate THEN DurationHours
ELSE 0
END AS HoursBetween,
CASE
WHEN reg.RegistrationDate > @EndDate THEN DurationHours
ELSE 0
END AS HoursAfter
FROM Registration reg
INNER JOIN PurchaseOrder po ON reg.PurchaseOrderId = po.PurchaseOrderId
WHERE po.statuscid = 1 AND reg.IsBillable = 1 AND SetNonBillable = 0 --AND reg.RegistrationDate >= @StartDate AND reg.RegistrationDate <= @EndDate
)tblReg
GROUP BY tblReg.PurchaseOrderId, tblReg.Reference
ORDER BY tblReg.Reference;