沒有程式背景的小女子我剛學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