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个人选择了此项)

不知我描述得清楚不?请高人给予解答一下啊
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧