首页 新闻 会员 周边 捐助

sql 多表统计

0
悬赏园豆:50 [已解决问题] 解决于 2012-12-13 14:37

A表 字段
HomeID   HouseID   ApartID  HomeCategory  HomePhone
1                420          2             男生                 123456

B表 字段
StuID ApartID HouseID
1         2            420
2         2             420
3          1           111

我想统计出一张C表,B表根据A表中的ApartID和HouseID,统计出B表中相同ApartID和HouseID记录的条数,条数在C表中以字段PeopleCount显示

C表

HouseID  ApartID  PeopleCount

420            2               2

Jason131的主页 Jason131 | 初学一级 | 园豆:159
提问于:2012-12-13 10:57
< >
分享
最佳答案
0

select A.HouseID,A.ApartID,count(*)as PeopleCount from   A,B
where A.HouseID= B.HouseID
 and A.ApartID= B.ApartID
group by A.HouseID,A.ApartID

自己测试过的,没问题

收获园豆:50
jzzlo | 菜鸟二级 |园豆:282 | 2012-12-13 11:21

用Linq查询的话 知道怎么写吗

Jason131 | 园豆:159 (初学一级) | 2012-12-13 11:29

@Jason131: 这个我真不会。。没用过这个

jzzlo | 园豆:282 (菜鸟二级) | 2012-12-13 16:40
其他回答(3)
0

select
       HouseID,
       ApartID,
       count(*)
  from B
  group by HouseID,ApartID

不知道你的需求是不是这个意思?

zhangpeng_java | 园豆:202 (菜鸟二级) | 2012-12-13 11:19
0

select

  HouseID,

  ApartID,

  PeopleCount=count(*)

from B group by ApartID

Rich.T | 园豆:3440 (老鸟四级) | 2012-12-13 11:19
0

select A.HouseID,A.ApartID,count(1) as PeopleCount

from   A join B  on   A.HouseID= B.HouseID
and A.ApartID= B.ApartID
group by A.HouseID,A.ApartID

Tom.汤 | 园豆:3058 (老鸟四级) | 2012-12-13 14:22

一般情况下第一个字段是主键,不能为空,写“count(1)”没错。

但是如果第一个字段是可以为空的,那么“count(1)”的统计结果就会错误。可以count主键所在的那个字段

支持(0) 反对(0) jzzlo | 园豆:282 (菜鸟二级) | 2012-12-14 08:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册