Sql学得不好呀,紧急求解一条Sql语句
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个人选择了此项)
不知我描述得清楚不?请高人给予解答一下啊
------解决方案--------------------
可以的。
------解决方案--------------------
--只查选择了答题情况
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