主题:  请教SQL语句怎么写

蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#12004/8/26 17:04:59
有两个表,一个是MInfo(货物信息),另一Store(储存记录)

MInfo表字段:
MID 主键ID
Name 名称

Store表字段:
MID 与MInfo的MID关连
Amout 数量
Room 存放地

要示选择货物名称、及这种货物的存储量总和

我用这样语句:
SELECT Name , SUM(Amout) FROM MInfo
  JOIN Amout ON MInfo.MID = Store.MID

数据库是ACCESS,但没有通过。向各位求救。


非常大鱼

绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
#22004/8/27 8:24:22
select a.*,b.* from a inner join b on a.id=b.id



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#32004/8/27 20:27:35
你可能没理解我的意思,这二张表是一对多的关系,
即MInfo的ID是主键,可对应Store表中多个记录,
即MInfo.ID -->Store.MID

我想把MInfo表中的单记录,与Store表中多个记录其中一列数量的总和成为一条记录,与MInfo相连接
即使相等ID的 MInfo.Name + SUM(Store.Amout) as '数量总和'


非常大鱼

绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
#42004/8/30 9:09:03
Select b.Name,count(a.id) as Amount from Store a ,MInfo b where a.Id=b.Mid group by b.Name,a.id
OR
Select b.Name,count(a.id) as Amount from Store a ,MInfo b group by b.Name,a.id,b.mid having a.Id=b.Mid

编辑历史:[此帖最近一次被 germchen 编辑过(编辑时间:2004-08-30 09:14:31)]


蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#52004/8/30 11:08:44
多谢germchen ;),我这去试试


非常大鱼

绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
#62004/8/30 11:09:58
或者用:
select [name],(select count(*) from Store as b where b.id=a.mid) as Amount from MInfo as a order by [name]

这个可能更好点



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#72004/8/31 2:16:05
谢楼上的,我试用感觉第3个灵活度更大些,前两个如再多加几个字段会有些问题。
不过前两种群组有特殊用处。非常谢谢。


非常大鱼

阿好

职务:普通成员
等级:1
金币:0.0
发贴:9
注册:2004/8/30 15:24:12
#82004/8/31 15:03:23
Good



浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
注册:2001/11/19 12:41:09
#92004/9/1 23:17:50
看来要再学学SQL了。