第一個問題在這裏,所以請原諒任何錯誤......運行3層T-SQL查詢報告
我想寫一個SQL查詢的SSRS報告,我完全糊塗了,當涉及到我的連接。
背景:我有3個表是相關
- 出版商 - 這本質上是人的名單
- 發佈報告 - 這是一個記錄列表(與出版商表)詳細介紹了他們在一個月內完成的工作。
- 投訴月份 - 這是與特定月份和年份相關的記錄列表(與發佈商報告表格有關)。在這些記錄中,他們有一個指標,顯示它們是否與前六個月期間相關。
我想要做的是獲取未提交與過去6個月內的報告月記錄相關的發佈商報告的發佈商列表。我期望的輸出是列出的發佈者列表,其中列出了他們在下一列中缺失的報告月份。
我真的很掙扎該怎麼辦呢?我原以爲它看作是一個三個步驟的過程......
--step 1 - 獲取的包括在過去6個月中報告清單月
WITH ACTIVE6MREPM AS
(
SELECT r.jajw_name,
r.jajw_CalendarDate
FROM jajw_reportmonthBase r
WHERE r.jajw_IncludedIn6MonthReport = '1'
),
--STEP 2 - Get list of all publishers
ACTIVEPUBS AS
(
SELECT c.FullName,
c.ContactId
FROM ContactBase c
WHERE c.statecode = '0'
AND c.jajw_CongregationAssignment != 640840001
AND c.jajw_CongregationAssignment != 640840006
AND c.jajw_CongregationAssignment != 640840005
--AND q.jajw_FieldServiceGroups = (@Field_Service_Group)
),
--STEP 3 - Get List of Publisher Reports for the selected Report Months
RELEVANTREPORTS AS
(
SELECT r.jajw_reportId AS Publisher_Report_GUID,
r.jajw_PublisherId AS Publisher_GUID,
r.jajw_ReportMonthId AS ReportMonth_GUID,
m.jajw_name AS ReportMonth_Name
FROM jajw_reportBase r
INNER JOIN jajw_reportmonthBase m ON r.jajw_ReportMonthId = m.jajw_reportmonthId
WHERE r.jajw_ReportPeriod6Month = '1'
ORDER BY m.jajw_CalendarDate
這三個之後,我想創建我的列表,如上所述,這是我難倒了!任何幫助將不勝感激!
謝謝!
表是如何關聯的? ID字段在哪裏?也許如果你爲這三個表格中的每一個提供一些數據可能會更好。查詢本身不應該很複雜,但您的CTE令我困惑。 – Anand
爲什麼CTE將@anand和 – scsimon
@scsimon混淆,而不是一般的CTE,哈哈。這些特定的CTE不能幫助理解表格之間的關係。 – Anand