эта проблема заставляет меня кружить голову по кругу в данный момент, и мне интересно, кто-нибудь может дать какие-либо указания относительно того, где я иду не так.
Я пытаюсь создать SPROC, который создает набор данных, который будет вызываться SSRS для графиков за последние 6 месяцев.
Данные в качестве примера используют три таблицы (есть больше, но они не изменит проблему под рукой) и следующие:
tbl_ReportList:
Report Site
----------------
North abc
North def
East bbb
East ccc
East ddd
South poa
South pob
South poc
South pod
West xyz
tbl_TicketsRaisedThisMonth:
Date Site Type NoOfTickets
---------------------------------------------------------
2010-07-01 00:00:00.000 abc Support 101
2010-07-01 00:00:00.000 abc Complaint 21
2010-07-01 00:00:00.000 def Support 6
...
2010-12-01 00:00:00.000 abc Support 93
2010-12-01 00:00:00.000 xyz Support 5
tbl_FeedBackRequests:
Date Site NoOfFeedBackR
----------------------------------------------------------------
2010-07-01 00:00:00.000 abc 101
2010-07-01 00:00:00.000 def 11
...
2010-12-01 00:00:00.000 abc 63
2010-12-01 00:00:00.000 xyz 4
Я использую CTE для упрощения кода, который выглядит следующим образом:
DECLARE @ReportName VarChar(200)
SET @ReportName = 'North';
WITH TicketsRaisedThisMonth AS
(
SELECT
[Date],
Site,
SUM(NoOfTickets) AS NoOfTickets
FROM tbl_TicketsRaisedThisMonth
WHERE [Date] >= DATEADD(mm, DATEDIFF(m,0,GETDATE())-6,0)
GROUP BY [Date], Site
),
FeedBackRequests AS
(
SELECT
[Date],
Site,
SUM(NoOfFeedBackR) AS NoOfFeedBackR
FROM tbl_FeedBackRequests
WHERE [Date] >= DATEADD(mm, DATEDIFF(m,0,GETDATE())-6,0)
GROUP BY [Date], Site
),
SELECT
trtm.[Date]
SUM(trtm.NoOfTickets) AS NoOfTickets,
SUM(fbr.NoOfFeedBackR) AS NoOfFeedBackR,
FROM tbl_ReportList rpts
LEFT OUTER JOIN TotalIncidentsDuringMonth trtm ON rpts.Site = trtm.Site
LEFT OUTER JOIN LoggedComplaints fbr ON rpts.Site = fbr.Site
WHERE rpts.report = @ReportName
GROUP BY trtm.[Date]
И вывод, когда sproc передает параметр, такой как 'Север', будет следующим:
Date NoOfTickets NoOfFeedBackR
-----------------------------------------------------------------------------------
2010-07-01 00:00:00.000 128 112
2010-08-01 00:00:00.000 <data for that month> <data for that month>
2010-09-01 00:00:00.000 <data for that month> <data for that month>
2010-10-01 00:00:00.000 <data for that month> <data for that month>
2010-11-01 00:00:00.000 <data for that month> <data for that month>
2010-12-01 00:00:00.000 122 63
Проблема, с которой я столкнулся, заключается в том, что когда я выполняю запрос, мне выдается повторяющийся список значений каждого месяца, например, 128 будет повторяться 6 раз, затем другое значение для следующих месяцев, повторяющееся 6 раз и т. Д. Argh!