原表結構
序號 |
性別 |
部門 |
工資 |
1 |
男 |
部門a |
800 |
2 |
女 |
部門b |
900 |
3 |
男 |
部門a |
400 |
4 |
女 |
部門d |
1400 |
5 |
男 |
部門e |
1200 |
6 |
男 |
部門f |
500 |
7 |
女 |
部門a |
300 |
8 |
男 |
部門d |
1000 |
9 |
女 |
部門d |
1230 |
10 |
女 |
部門b |
2000 |
11 |
男 |
部門c |
2000 |
12 |
男 |
部門b |
1200 |
最終顯示
部門名 |
人數 |
男 |
女 |
小於800元 |
從800至999 |
從1000元至1190元 |
大於1200元 |
部門a |
3 |
2 |
1 |
2 |
1 |
0 |
0 |
部門b |
3 |
1 |
2 |
0 |
1 |
0 |
2 |
部門c |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
部門d |
3 |
1 |
2 |
0 |
0 |
1 |
2 |
部門e |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
部門f |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
SELECT 部門名,COUNT(序號) as 人數,
SUM(CASE 性別 WHEN 1 THEN 1 ELSE 0 END) as 男,
SUM(CASE 性別 WHEN 2 THEN 1 ELSE 0 END) as 女,
SUM(CASE SIGN(工資-800) WHEN -1 THEN 1 ELSE 0 END) as 小於800元,
SUM((CASE SIGN(工資-800)*SIGN(工資-1000) /**//*用*來實現<和>功能*/
WHEN -1 THEN 1 ELSE 0 END)+(CASE 工資
WHEN 800 THEN 1 ELSE 0 END)) as 從800至999, /**//*注意別名不能以數字開頭*/
SUM((CASE SIGN(工資-1000)*SIGN(工資-1200)
WHEN -1 THEN 1 ELSE 0 END)+(CASE 工資
WHEN 1000 THEN 1 ELSE 0 END)) as 從1000元至1199元,
SUM((CASE SIGN(工資-1200) WHEN 1 THEN 1 ELSE 0 END)
+(CASE 工資 WHEN 1200 THEN 1 ELSE 0 END)) as 大於1200元
FroM 工資明細表
GROUP BY 部門名