Re: [SQL ] 問一下 sql語法要怎麼下

看板Database作者 (寶貝豬)時間17年前 (2008/11/12 19:38), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
試試看這樣的結果滿不滿意? fO_o SELECT DISTINCT t.orgid, m.c AS mc, f.c AS fc FROM test AS t LEFT JOIN ( SELECT orgid, sex, count( * ) AS c FROM `test` GROUP BY orgid, sex HAVING sex =1 ) AS m ON m.orgid = t.orgid LEFT JOIN ( SELECT orgid, sex, count( * ) AS c FROM `test` GROUP BY orgid, sex HAVING sex =0 ) AS f ON f.orgid = t.orgid LIMIT 0 , 30 #用測試資料跑出來的結果: orgid mc fc 1 3 1 2 1 1 至於'序號', 只怕要在撈資料出來時自己編進去了. 我用mysql, 沒有支援rownum, 要在SQL下製造rownum有點複雜. ※ 引述《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.74.110.209

11/12 20:39, , 1F
感謝你的回答 !
11/12 20:39, 1F
文章代碼(AID): #196i15HJ (Database)
文章代碼(AID): #196i15HJ (Database)