看板 Database 關於我們 聯絡資訊
請問 我現在有個 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: 220.130.139.12
gush0905:可以把原始TABLE 匯出SQL 再貼出來ㄇ?我想在我的本機上面 11/12 16:36
gush0905:TRY TRY 11/12 16:50
補上 table 匯出的sql (用mysql dump出來的) 加上我做的假資料 DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(45) default NULL, `code` varchar(45) default NULL, `sex` varchar(45) default NULL, `orgId` int(10) unsigned NOT NULL, `departmentId` int(10) unsigned NOT NULL, `email` varchar(45) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=big5; LOCK TABLES `test` WRITE; INSERT INTO `test` VALUES (1,'johnny','aaaa','1',1,1,'xxx@gmail.com'),(2,'betty','aaab','0',1,2,'aaa@gmail.com'),(3,'jack','asdf','1',2,1,'ccc@gmail.com'),(4,'daisy','qwer','0',2,2,'ggg@gmail.com'),(5,'drinks','qweee','1',1,2,'drinks@gmail.com'),(6,'jojo','sssss','1',1,1,'jojo@gmail.com'); UNLOCK TABLES; ※ 編輯: drinks 來自: 220.130.139.12 (11/12 17:16)