|
主题: 请教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了。
|