[英]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.