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个人选择了此项)   不知我描述得清楚不?请高人给予解答一下啊

解决方案 »

  1.   

    select AID,BID,count(*) as Num from C
    group by AID,BID这样行不?
      

  2.   

       对于group by,having等等都不知道怎么用。刚才的写法是针对单表的,如果针对多表时该怎么办呢?
      

  3.   

    --只查选择了答题情况
    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