第一个问题在这里,所以请原谅任何错误......运行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