Sql学得不好呀,紧急求解一条Sql语句

YangYun 四川广电网络攀钢分公司 其他  2012-03-30 10:44:42
Sql语句始终学得不对劲,只会一些常规的简单操作,一旦复杂了就不知所措了,现在就遇到一个对我来说太复杂的Sql语句
具体情况如下:
我有三张表,一个是考题A表,一个是答案选项B表,一个是回答选择C表。
A:
AID,Title (题号ID,题内容)
B:
BID,AID,Title (选项ID,题号ID,选项描述)
C:
CID,AID,BID (回答ID,题ID,选项ID)

我的问题是,我想得到各题中各选项有多少人选择。
我要的结果如下:

AID,Bid,Num (第AID题的BID选项有Num个人选择了此项)

不知我描述得清楚不?请高人给予解答一下啊
...全文
97 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
YangYun 2012-03-30
对于group by,having等等都不知道怎么用。刚才的写法是针对单表的,如果针对多表时该怎么办呢?
回复
火锅大仙 2012-03-30
回复
楠_ 2012-03-30
可以的。
回复
YangYun 2012-03-30
select AID,BID,count(*) as Num from C
group by AID,BID

这样行不?
回复
YangYun 2012-03-30
高人快出现啊??
回复
dawugui 2012-03-30
--只查选择了答题情况
select a.aid , b.bid , num = count(1) from a , b, c, where a.aid = b.aid and a.aid = c.cid and b.bid = c.bid group by a.aid , b.bid

--查询所有的答题情况,如果位未选,显示为0
select a.aid , b.bid , num = isnull((select count(1) from c where a.aid = c.cid and b.bid = c.bid),0) from a , b where a.aid = b.aid
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2012-03-30 10:44
社区公告
暂无公告