关于 select count 的问题,有耐心的高手进来帮帮忙

xiessss 2010-05-18 09:44:34
比如现在这样一张表qq
a b c
1 1 1
1 1 2
1 2 1
1 3 3
2 1 1
2 2 2
2 3 1
3 1 2
3 3 3
我想用ado控件统计 a相同的情况下每个不同的b各有多少个,比如统计b=1的语句:
Adodc1.RecordSource = "select a,count(b) as b1 from qq where b='1' group by a”
结果是:
a b1
1 2
2 1
3 1
我现在想在这基础上再实现统计b=2以及b=3的情况, 及最后结果显示为:
a b1 b2 b3
1 2 1 1
2 1 1 1
3 1 0 1
请问要实现这个统计结果的语句怎么写呢?最好能给个完整的过程,越具体越好,菜鸟在此谢过~
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaboyzyq 2010-05-20
  • 打赏
  • 举报
回复

//ACCESS

select c.a,c.b1,iif(isnull(c.b2),0,c.b2) as b2,d.b3 from
(select a.a,a.b1,b.b2 from
((select a,count(b) as b1 from qq where b='1' group by a) a
left join
(select a,count(b) as b2 from qq where b='2' group by a) b on a.a=b.a)) c
left join
(select a,count(b) as b3 from qq where b='3' group by a) d on c.a=d.a


//SQL SERVER

SELECT c.a, c.b1, ISNULL(c.b2, 0) AS b2, d.b3
FROM (SELECT a.a, a.b1, b.b2
FROM ((SELECT a, COUNT(b) AS b1
FROM qq
WHERE b = '1'
GROUP BY a) a LEFT JOIN
(SELECT a, COUNT(b) AS b2
FROM qq
WHERE b = '2'
GROUP BY a) b ON a.a = b.a)) c LEFT OUTER JOIN
(SELECT a, COUNT(b) AS b3
FROM qq
WHERE b = '3'
GROUP BY a) d ON c.a = d.a
xiessss 2010-05-20
  • 打赏
  • 举报
回复
多谢两位帮忙,问题已经解决~
threenewbee 2010-05-19
  • 打赏
  • 举报
回复
Adodc1.RecordSource = "select a,count(b) as b1 from qq group by a group by b”
xiessss 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
Adodc1.RecordSource = "select a,count(b) as b1 from qq where b='1' group by a, group by b”
[/Quote]
似乎有语法错误吧?
threenewbee 2010-05-18
  • 打赏
  • 举报
回复
Adodc1.RecordSource = "select a,count(b) as b1 from qq where b='1' group by a, group by b”

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧