我正在查询TEMP表,即使没有TYPE值,我也需要为每个TYPE插入记录。我需要每个ACTIVITY MONTH中每个TYPE的数据记录为0。因此,每个月需要有4种类型(PIF,WP,EP和LR)。任何帮助/方向将不胜感激。谢谢。
这是我的SQL代码:
SELECT [Agency Code], [Agency Name], [Data], [Activity Month],
CASE
WHEN RN = 1 THEN 'PIF'
WHEN RN = 2 THEN 'WP'
WHEN RN = 3 THEN 'EP'
WHEN RN = 4 THEN 'LR'
END as [Type]
FROM #tempMonthlyResults_NLA
ORDER BY [Agency Code] asc, [Activity Month] asc, RN asc;
这是我需要的结果集如下所示的
这是我的查询结果集现在的样子:
答案 0 :(得分:1)
对表或4种类型的CTE进行完全外部联接,对DISTINCT活动月份进行交叉联接。
那样,或者您可以使用CROSS APPLY来做到这一点。
答案 1 :(得分:1)
您可以创建一个包含值和相关代码的RN_TYPE查找表。
RN_TYPE table:
RNID int
Type char(3)
RNID Type
1 PIF
2 WP
3 EP
4 LR
然后使用@Tab的建议,使用创建查询
FROM RN_TYPE LEFT OUTER JOIN #tempMonthlyResults_NLA on RN_TYPE.RNID=#tempMonthlyResults_NLA.RN
那样,您将始终返回类型。