首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于GROUP BY 语句解决办法

2012-01-13 
关于GROUP BY 语句表ppidptypeid11213242表ptypeptypeid1234一个sql语句SELECTptype.ptypeid,COUNT(p.pid)

关于GROUP BY 语句
表   p
pid     ptypeid
1                 1
2                 1
3                 2
4                 2
表ptype
ptypeid
1
2
3
4
一个sql语句
SELECT   ptype.ptypeid,COUNT(p.pid)   as   pcount
FROM   ptype   INNER   JOIN   p   ON   ptype.ptypeid   =   p.ptypeid
GROUP   by   ptype.ptypeid
得到如下表
----------------
ptypeid             pcount
1                             2
2                             2
我想得到如下表   怎么写?
--------------------
ptypeid             pcount
1                           2
2                           2
3                           0
4                           0

[解决办法]
select ptype.*,
pcount=isnull(p.pcount, 0)
from ptype
left join
(
select ptypeid, count(*) as pcount
from p
group by ptypeid
)p on ptype.ptypeid=p.ptypeid

--result
ptypeid pcount
----------- -----------
1 2
2 2
3 0
4 0

(4 row(s) affected)

热点排行