我有这样的一个表 :
商品订单表:
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
[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