问题: 将具有指定的预定义日期集的单个交易(行)从一个表移动到另一个表,该表在一行中包含所有日期/交易值。
表1 摘要表。列
表2 -交易表。 列:
我想遍历表2中的每一行(事务)并将其插入/更新到表1中(表2中每个唯一KeyField的摘要行)。
SQL现在正在避开我,但这是我现在要走的方向-MERGE语句,其中我检查Date字段中的日期,并根据Date字段中的值填充表1中的正确列(映射到表1中的列名的5个预定义值之一)。这不必一定是MERGE,但是我的一些初步研究建议将MERGE用于StackOverflow中类似的INSERT / UPDATE情况(是的,我阅读了概述MERGE问题的博客)。
到目前为止,代码(已损坏):
MERGE Into Table1 as TH
USING (SELECT * FROM Table2) as TR
on TH.PK=TR.KeyField
when matched then
update set
TH.PK = TR.KeyField,
IF (TR.Date = 20190131)
TH.Date190131 = TR.MyValue
Else
Begin
If TR.Date = 20180131
TH.Date180131 = TR.MyValue
Else
Begin
If TR.Date = 20170131
TH.Date20170131 = Tr.MyValue
Else
Begin
If TR.Date = 20160131
TH.Date20160131 = Tr.MyValue
Else
TH.Date20150131 = Tr.MyValue
End;
End;
End;
when not matched then
insert values(domain