繁体   English   中英

结合 INSERT 和 CASE SQL 服务器查询

[英]Combining INSERT and CASE SQL Server Queries

这里有几个 SQL 查询,我试图将它们编写为单个查询或两个查询。 我尝试了各种我能想到但没有奏效的可能性。

我有一个空白表tbl_Z 我正在尝试LEFT JOIN tbl_Atbl_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM