一份报告中有 2 个时间段 SQL Reportbuilder 2012 3.0
2 time periods in one report SQL Reportbuilder 2012 3.0
我想在 Microsoft SQL Reportbuilder 3.0 2012 中查看图中显示的两个时期的报告。我进行了一个查询,该查询将显示红色期间,但我似乎无法在一份报告中将黑色期间与红色期间结合起来。它们需要是彼此相邻的 2 个不同的列。
此报告的目的是显示某个项目从开始到今天的所有预订,并具体查看某个月份的预订。
甚至有办法做到这一点还是不可能?
以为我会分享答案。这是我用来解决问题的代码。
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;
我想在 Microsoft SQL Reportbuilder 3.0 2012 中查看图中显示的两个时期的报告。我进行了一个查询,该查询将显示红色期间,但我似乎无法在一份报告中将黑色期间与红色期间结合起来。它们需要是彼此相邻的 2 个不同的列。 此报告的目的是显示某个项目从开始到今天的所有预订,并具体查看某个月份的预订。 甚至有办法做到这一点还是不可能?
以为我会分享答案。这是我用来解决问题的代码。
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;