作者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)
1F:推 drinks:因为 我ms sql 倒不出来 所以用mysql 再创一个 >< 11/12 20:20
2F:推 drinks:感谢你的回答 ,我试试看 谢谢你! 11/12 20:28