如何将记录插入SQL查询结果

时间:2019-02-14 20:15:51

标签: sql-server tsql

我正在查询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;

这是我需要的结果集如下所示的

enter image description here

这是我的查询结果集现在的样子:

enter image description here

2 个答案:

答案 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

那样,您将始终返回类型。