作者Antzzz (減肥中請勿餵食)
看板Database
標題Re: [SQL ] 問一下 sql語法要怎麼下
時間Wed Nov 12 19:35:21 2008
為什麼文中說的是MSSQL,可是後面寫的是MySQL@@
我用MSSQL寫
select isnull(M.org, F.org), isnull(M.MCount,0), isnull(F.FCount,0)
from (
select org, count(*) as MCount
from readerInfo
where sex = '男'
group by org
) M
full outer join
(
select org, count(*) as FCount
from readerInfo
where sex = '女'
group by org
) F on F.org = M.org
'男'和'女'請自行代換成資料庫內的男女代碼
※ 引述《drinks (爪哇工程師)》之銘言:
: 請問 我現在有個
: table readerInfo
: sex(性別),
: org(單位),
: name,
: code,
: ...,
: 我現在想要針對這table做 下group 指令(做報表)
: -------------------------
: | 序號 | 館別 | 男 | 女 |
: -------------------------
: | 1 | org1 | 12 | 21 | <==這是我想要的樣子
: -------------------------
: | 2 | org2 | 33 | 44 |
: -------------------------
: | 3 | org3 | 0 | 4 |
: -------------------------
: | 4 | org4 | 77 | 12 |
: -------------------------
: 我現在下的語法是
: select count(*) from reader a group by sex,org;
: 結果 會是
: -------------
: | 序號 | |
: -------------
: | 1 | 12 |
: -------------
: | 2 | 21 |
: -------------
: | 3 | 33 |
: -------------
: | 4 | 44 |
: -------------
: 結果...恩...應該是有對(數字都對) 只是不是我想要的樣子
: 所以現在 我就去select 所有 org
: 然後把得到的結果
: 用迴圈處理
: select * from reader a where a.org =? group by a.sex;
: 就可以得到最上面的結果 查詢次數 是 1+(org個數)次
: 可是我覺得 應該可以不用程式 就可以用sql語法下出來
: 只是我不會下.......(我sql學的不是很好><)
: 所以,想請問高手 有辦法用 一次 sql 下的出來嗎?
: 我是用 ms sql server 2003
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.20.100.62
※ 編輯: Antzzz 來自: 211.20.100.62 (11/12 19:38)
推 drinks:因為 我ms sql 倒不出來 所以用mysql 再創一個 >< 11/12 20:20
推 drinks:感謝你的回答 ,我試試看 謝謝你! 11/12 20:28