簡體   English   中英

如何將table2從table1更新到table2中的相應條目?

[英]How to update table2 from table1, into corresponding entry in table2?

我想計算不同表中存儲庫的出現,並在FinalTable的相應列中進行更新。

銀行表格:

  BankName  ErrorCode
    SBI         200
    ICICI       200
    SBI         400
    SBI         500
    SBI         503

ATMTable:

BankName    ErrorCode
ICICI       200
ICICI       400
ICICI       400
SBI         500
SBI         503

MitraTable:

BankName    ErrorCode
ICICI        200
ICICI        200
SBI          400
SBI          500
SBI          503
PNB          501  

決賽桌:

BankName    BankCount   ATMCount    MitraCount  TotalCount
ICICI            1         3           2          6
SBI              4         2           3          9
PNB              0         0           1          1

我想計算不同銀行的出現次數,並在FinalTable中設置值。

您可以將UNION ALL與條件聚合一起使用:

SELECT BankName,
       COUNT(CASE WHEN src = 'Bank' THEN 1 END) AS BankCount,
       COUNT(CASE WHEN src = 'ATM' THEN 1 END) AS ATMCount,
       COUNT(CASE WHEN src = 'Mitra' THEN 1 END) AS MitraCount,
       COUNT(*) AS TotalCount

FROM (
   SELECT BankName, 'Bank' AS src 
   FROM BankTable

   UNION ALL 

   SELECT BankName, 'ATM' AS src
   FROM ATMTable

   UNION ALL

   SELECT BankName, 'Mitra' AS src
   FROM MitraTable) AS t
GROUP BY BankName

字段src用於將源表返回到使用UNION ALL操作結果的外部查詢。 使用此字段,我們可以執行條件聚合 ,以便計算每個源表中每個存儲庫的出現。

嘗試這個:

SELECT BankName, 
       SUM(BankCount) AS BankCount, 
       SUM(ATMCount) AS ATMCount, 
       SUM(MitraCount) AS MitraCount, 
       SUM(BankCount + ATMCount + MitraCount) AS TotalCount 
FROM (SELECT BankName, 
             COUNT(ErrorCode) AS BankCount, 
             0 AS ATMCount, 
             0 AS MitraCount 
      FROM BankTable 
      GROUP BY BankName 
     UNION 
      SELECT BankName, 
             0 AS BankCount, 
             COUNT(ErrorCode) AS ATMCount, 
             0 AS MitraCount 
      FROM ATMTable 
      GROUP BY BankName 
     UNION 
      SELECT BankName, 
             0 AS BankCount, 
             0 AS ATMCount, 
             COUNT(ErrorCode) AS MitraCount 
      FROM MitraTable 
      GROUP BY BankName
    ) AS A
GROUP BY BankName;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM