ASPX+VB+SQL项目中GridView按供应商汇总采购金额问题
解决采购汇总SQL的金额计算分组问题
你的问题出在第二个SQL的分组逻辑和金额计算方式上:
- 错误地将
Qty和Rate加入GROUP BY,导致分组粒度从「日期+供应商」变成了「日期+供应商+单条记录的Qty+Rate」,完全破坏了原本的汇总效果 Qty * Rate只是单条记录的金额,没有做汇总计算,无法得到分组后的总金额
正确的SQL查询语句
SELECT CONVERT(varchar(10), Date, 105) AS Date, Vendor, SUM(Quantity) AS Quantity, -- 注意:如果Rate是单价,SUM(Rate)是所有记录单价的总和,通常无业务意义,建议换成平均单价:SUM(Quantity * Rate)/SUM(Quantity) AS AvgRate SUM(Rate) AS Rate, SUM(Quantity * Rate) AS Amount FROM Procurement GROUP BY Date, Vendor
关键修正点
- 分组逻辑保持一致:只保留
Date和Vendor在GROUP BY中,确保按日期+供应商维度进行汇总 - 总金额正确计算:用
SUM(Quantity * Rate)先计算每条采购记录的金额,再对分组内的所有金额求和,得到该供应商当日的采购总金额
把这个查询替换到你的项目中,GridView就能输出你预期的Date | Vendor | Quantity | Rate | Amount格式的汇总结果。
内容的提问来源于stack exchange,提问作者Baiju
相关产品推荐
相关产品推荐

