实际开发中碰到的SQL问题,求高手指教~~!
存在这样的一张表:商品编码(custNo) 商品名称(custName) 应付款(pay) 供应付款单审核状态(start) 1为已审核,0为未审核
1 10001 NIKE 1000.00 1
2 10002 AMAINE 1500.00 1
3 10001 NIKE 900.00 1
4 10003 LV 500.00 0
5 10003 LV 1200.00 1
6 10001 NIKE 500.00 1
7 10001 NIKE 200.00 0
8 10002 AMAINE 800.00 0
9 10003 LV 1900.00 0
10 10002 AMAINE 700.00 0
现在要完成一种查询,从这张表中,做出所有已审核商品的应付款汇总的明细(即:将上表中审核状态为 1 的不同商品 的应付款汇总,将查询结果再重新形成一张新表 这张表中只显示三种不同商品应付款的汇总)
商品编码(custNo) 商品名称(custName) 应付款汇总(pay) 供应付款单审核状态(start)(正确的结果)
10001 NIKE 2400.00 1
10002 AMAINE 1500.00 1
10003 LV 1200.00 1
问题出在这了,本人菜鸟,速成,对数据库学习的不太好
select custno,custname,sum(pay) where start='1'
结果就成了这个样子
商品编码(custNo) 商品名称(custName) 应付款汇总(pay) 供应付款单审核状态(start)(错误的结果)
10001 NIKE 5100.00 1
10002 AMAINE 5100.00 1
10003 LV 5100.00 1
我这条语句只能算出所有的pay中的 数的总和 不能将 之按商品编码分类计算。实在想不出来了。。。求高手帮忙,应该怎么写
--------------------编程问答-------------------- select custName,sum(pay)as totalpay from products where state=1
group by custname
这样就ok --------------------编程问答-------------------- select custno,custName,sum(pay)as totalpay
from products
where state=1
group by custno,custname
基本上就是樓上的意思。 --------------------编程问答-------------------- 用聚合函数进行分组查询 group by
select custno,custName,sum(pay)as totalpay
from products
where state=1
group by custno,custname
另外还告诉你额外的一些东西(group by 的用法及注意的问题)
group by 后面的字段必须在前面已经出现。不然的话会报错。
还有就是group by 后面还可有一成刷选用Having 字段
补充:.NET技术 , .NET Framework