[英]Combining INSERT and CASE SQL Server Queries
这里有几个 SQL 查询,我试图将它们编写为单个查询或两个查询。 我尝试了各种我能想到但没有奏效的可能性。
我有一个空白表tbl_Z
。 我正在尝试LEFT JOIN tbl_A
和tbl_B
并将结果加载到tbl_Z
中,并根据此处显示的 2 个 SQL 语句中的条件从tbl_A
更新tbl_Z
中的Status
列:
INSERT INTO tbl_Z
SELECT a.*
FROM tbl_A a
LEFT JOIN tbl_B b ON a.AccountNumber = b.AccountNumber
WHERE a.Period = '09/30/2021'
AND b.AccountNumber IS NULL
UPDATE Z
SET Status = (SELECT
f.ContractDate, f.BK_Date, f.Period,
CASE
WHEN ISNULL(f.ContractDate, '1/1/1900') < ISNULL(f.BK_Date, '1/1/1900') AND f.BK_Date < ISNULL(f.Period, '1/1/1900')
THEN 'Bankrupt.Attrit'
ELSE 'Attrit'
END AS Status
FROM
tbl_A f
WHERE
Period = '09/30/2021')
任何帮助将不胜感激。
我不知道字段名称,只需在 select 中添加字段名称,将 case 语句按字段的写入顺序。
INSERT INTO tbl_Z
SELECT -- please write your all tbl_A fields here and then place below case in write order of selection
,
CASE
WHEN ISNULL(f.ContractDate, '1/1/1900') < ISNULL(f.BK_Date, '1/1/1900')
AND f.BK_Date < ISNULL(f.Period, '1/1/1900')
THEN 'Bankrupt.Attrit'
ELSE 'Attrit'
END AS Status
FROM tbl_A a
LEFT JOIN tbl_B b ON a.AccountNumber = b.AccountNumber
WHERE a.Period = '09/30/2021'
AND b.AccountNumber IS NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.