【发布时间】:2022-01-06 19:32:59
【问题描述】:
这里有几个 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')
任何帮助将不胜感激。
【问题讨论】:
-
您正在尝试设置单个
Status列 - 但您的子查询返回 4 (!!!) 列 - 这应该如何工作?而且您正在设置单行的Status列 - 但您的子查询可能会返回多行...... -
在
update块中:将目标表和源表连接为from tbl_Z join tbl_A和set tbl_Z.Status = tbl_A.yourValue