[英]How to add another result of query that result i made to a result (SQL)
嗨,我有這個問題這對你來說很簡單,但由於我的英語不好,我無法找到如何修復我的代碼:((
這是我做的查詢
SELECT
ESCC,
count(if(DRC =156, DRC,NULL)) AS 'A',
count(if(DRC =159, DRC,NULL)) AS 'B',
count(if(DRC =160, DRC,NULL)) AS 'C'
FROM diag_results WHERE diagOrder=1 GROUP BY ESCC;
上面的查詢產生以下結果。
+------+----+----+----+
| ESCC | A | B | C |
+------+----+----+----+
| 1 | 32 | 21 | 92 |
+------+----+----+----+
| 2 | 21 | 33 | 52 |
+------+----+----+----+
...
但我想將波紋管查詢的另一個結果作為列添加到上述結果中
SELECT
count(if(DRC =156, DRC,NULL)) AS 'D',
count(if(DRC =159, DRC,NULL)) AS 'E',
count(if(DRC =160, DRC,NULL)) AS 'F'
FROM diag_results WHERE diagOrder=2 GROUP BY ESCC;
結果
+----+----+----+
| D | E | F |
+----+----+----+
| 32 | 21 | 92 |
+----+----+----+
| 21 | 33 | 52 |
+----+----+----+
...
所以我想得到這樣的結果
+------+----+----+----+----+----+----+
| ESCC | A | B | C | D | E | F |
+------+----+----+----+----+----+----+
| 1 | 32 | 21 | 92 | 32 | 21 | 92 |
+------+----+----+----+----+----+----+
| 2 | 21 | 33 | 52 | 21 | 33 | 52 |
+------+----+----+----+----+----+----+
請回答我
你不需要count(if())
來做你想做的事。 使用sum()
簡單得多,如下所示:
SELECT ESCC,
sum(diagOrder = 1 and DRC = 156) AS A,
sum(diagOrder = 1 and DRC = 159) AS B,
sum(diagOrder = 1 and DRC = 160) AS C,
sum(diagOrder = 2 and DRC = 156) AS D,
sum(diagOrder = 2 and DRC = 159) AS E,
sum(diagOrder = 2 and DRC = 160) AS F
FROM diag_results
WHERE diagOrder IN (1, 2)
GROUP BY ESCC;
我還強烈建議您不要對列別名使用單引號。 僅對字符串和日期/時間常量使用單引號。
SELECT
ESCC,
count(if(diagOrder = 1 AND DRC =156, DRC,NULL)) AS 'A',
count(if(diagOrder = 1 AND DRC =159, DRC,NULL)) AS 'B',
count(if(diagOrder = 1 AND DRC =160, DRC,NULL)) AS 'C',
count(if(diagOrder = 2 AND DRC =156, DRC,NULL)) AS 'D',
count(if(diagOrder = 2 AND DRC =159, DRC,NULL)) AS 'E',
count(if(diagOrder = 2 AND DRC =160, DRC,NULL)) AS 'F'
FROM diag_results WHERE diagOrder IN (1, 2)
GROUP BY ESCC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.