簡體   English   中英

如何使用 COUNT 和 WHERE 子句從兩個不同的表中選擇 2 個不同的列

[英]How to select 2 different columns from two different tables with COUNT and WHERE clause

我真的需要你的幫助,我有這些查詢,我想用 count 和 where 語句選擇 2 個不同表的 2 列。

SELECT Error_Code as ISERR, 
       COUNT(Error_Code) as A 
FROM COMPIS 
WHERE test_date BETWEEN '2020-01-01 06:00:00' AND '2020-01-10 18:00:00' 
  AND Error_Code <> ' ' 
GROUP BY Error_Code

SELECT error_code as SCERR, 
       COUNT(error_code) as B 
FROM COMPSER 
WHERE test_date_time BETWEEN '2020-01-01 06:00:00' AND '2020-01-10 18:00:00' 
  AND error_code <> ' ' 
GROUP BY error_code

我試過這些查詢,但這只顯示空值。

SELECT A, a.ISERR, B, b.SCERR
FROM ( SELECT Error_Code as ISERR, 
              COUNT(Error_Code) as A 
       FROM COMPIS 
       WHERE test_date BETWEEN '2020-01-01 06:00:00' AND '2020-01-10 18:00:00' 
         AND Error_Code <> ' ' 
       GROUP BY Error_Code ) a,
     ( SELECT error_code as SCERR, 
              COUNT(error_code) as B 
       FROM COMPSER 
       WHERE test_date_time BETWEEN '2020-01-01 06:00:00' AND '2020-01-10 18:00:00' 
         AND error_code <> ' ' 
       GROUP BY error_code ) b

輸出是:

A    | ISERR | B   | SCERR
-----+-------+-----+------
null   null   null   null

您的幫助將不勝感激。 謝謝

SELECT error_code, 
       SUM(CASE WHEN table='A' THEN cnt END) cnt_A, 
       SUM(CASE WHEN table='B' THEN cnt END) cnt_B
FROM ( SELECT Error_Code as ISERR, 
              COUNT(Error_Code) as cnt,
              `A` as table 
       FROM COMPIS 
       WHERE test_date BETWEEN '2020-01-01 06:00:00' AND '2020-01-10 18:00:00' 
         AND Error_Code <> ' ' 
       GROUP BY Error_Code
     UNION ALL
       SELECT error_code, 
              COUNT(error_code),
              'B'
       FROM COMPSER 
       WHERE test_date_time BETWEEN '2020-01-01 06:00:00' AND '2020-01-10 18:00:00' 
         AND error_code <> ' ' 
       GROUP BY error_code ) total
GROUP BY error_code

如果您需要 NULL 而不是零,請使用 MAX 代替 SUM。

暫無
暫無

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

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