日期:2014-05-18  浏览次数:20462 次

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