沒有程式背景的小女子我剛學SQL幾天 表格(TABLE1)如下
要怎麼樣算出a,b,c,d,e的完成y數量以及未完成數量?
| name | (FR10)專案完成否 |
|---|---|
| a y | |
| c y | |
| e n | |
| e n | |
| a n | |
| b y | |
| c y |
SELECT NAME,COUNT(NAME)
FROM TABLE1
WHERE FR10='Y' OR FR10='P'
GROUP BY NAME
UNION ALL(
SELECT NAME,COUNT(NAME)
FROM TABLE1
WHERE FR10='N'
GROUP BY NAME
)
我用UNION ALL 但是只能把他們連在一起 不知道要怎麼變成以下的表格呈現方式(如下,數字是亂打的)
| NAME | 未結 | 已結 |
|---|---|---|
| A 4 5 | ||
| B 4 3 | ||
| C 5 2 | ||
| D 1 5 | ||
| E 5 7 |
CREATE TABLE TABLE1 (
NAME varchar(40) NULL ,
FR10 varchar(40) NULL);
INSERT INTO TABLE1 (NAME,FR10)
VALUES
('a','y'),
('c','y'),
('e','n'),
('e','n'),
('a','n'),
('b','y'),
('c','y');
SELECT NAME,SUM(CASE WHEN FR10='n' THEN 1 ELSE 0 END) AS '未結',
SUM(CASE WHEN FR10='y' THEN 1 ELSE 0 END) AS '已結'
FROM TABLE1
GROUP BY NAME
ORDER BY NAME