当前位置:编程学习 > C#/ASP.NET >>

实际开发中碰到的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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,