请教access的统计问题

我有这样的一个表 :

商品订单表:
Orders

商品编码 商品名称 客户名称 客户预订数量

goodsCode goodsName customName orderNum
110 面包 张三 10
110 面包 李四 20
111 牛奶 张三 10
111 牛奶 王五 20

现在要求统计出各个商品的总共预订数量,需求结果如下:

商品编码 商品名称 客户预订数量

goodsCode goodsName orderNum
110 面包 30
111 牛奶 30

select goodsCode from Orders group by goodsCode
使用group by 可以得出各类商品,但是在access里面统计和取得商品名称应该怎么写?
不可以直接:
select goodsCode,goodsName,sum(orderNum) from Orders group by goodsCode

3个回答

[quote]
select goodsCode,goodsName,sum(orderNum) from Orders group by goodsCode
[/quote]
这句话错在,你按goodsCode分组,但是前面要把goodsName查出来,这样就错了,因为在goodsCode相同的一组里,goodsName是有可能不一样的(虽然你实际的数据是都一样的,但是数据库不知道啊),所以就不让你这样查咯。
所以我说是数据库的设计问题。
要不你就根据goodsCode再查一遍吧

select goodsCode,goodsName,sum(orderNum) from Orders group by goodsCode,goodsName

你的数据库设计的有冗余哦,商品编码和名称应该是一一对应的吧,那就应该把商品名称单独放到一个表里
然后这个表里就这样查
select goodsCode,,sum(orderNum) from Orders group by goodsCode。
再建个表,比如叫GoodName
商品编码 商品名称
goodsCode goodsName
110 面包

111 牛奶

只有编码和名称

然后再一起查出来
select Orders.goodsCode,,sum(orderNum),goodsName from Orders,GoodName where Orders.goodsCode=GoodName.goodsCode,group by goodsCode,goodsName

立即提问
相关内容推荐