sql-server - 如何在 SQL 中为每组选择一行?
问题描述
我将使用几乎下表和数据,并添加 Net、GST 和 Gross 列:
CustomerPO| Net | GST | Gross
DS4284735 100 50 150
DS4284735 70 30 100
我的预期结果将是:
CustomerPO| Net | GST | Gross
DS4284735 170 80 250
我怎样才能做到这一点?
我的选择代码是:
SELECT dbo.Invoice.CustomerPO AS Reference, dbo.InvoiceDetails.ExtendedPrice AS Net, dbo.InvoiceDetails.TotalTaxes AS GST,
dbo.InvoiceDetails.ExtendedPrice + dbo.InvoiceDetails.TotalTaxes AS Gross
我必须按所有内容分组吗?请注意,这两个在数据库表中具有不同的 InvoiceID
解决方案
SELECT dbo.Invoice.CustomerPO AS Reference
, ISNULL(dbo.Invoice.CredInvoiceNo, dbo.Invoice.InvoiceNo)
AS [Invoice Number]
, AVG(dbo.InvoiceDetails.ExtendedPrice) AS Net
, AVG(dbo.InvoiceDetails.TotalTaxes) AS GST
, CONVERT(int, ROUND(SUM(dbo.InvoiceDetails.ExtendedPrice + dbo.InvoiceDetails.TotalTaxes), 0)) AS Gross
GROUP BY dbo.Invoice.InvoiceNo, dbo.Invoice.CustomerPO, ISNULL(dbo.Invoice.CredInvoiceNo, dbo.Invoice.InvoiceNo), dbo.Invoice.EntryDate
推荐阅读
- pandas - 如何在熊猫列表中减去元组元素并应用条件?
- typescript - 打字稿 - 克隆一个对象并转换为另一种类型
- node.js - MongoDB 通过 Mongoose JS - findByID res out of funktion
- amazon-web-services - 建议:设置允许用户从设备创建 rtmp 推送端点的流服务
- python - 为什么 sympy 不能计算非常简单的积分
- amazon-web-services - 使用 AWS-CDK (python) 将多个现有安全组添加到 EC2
- python - Discord.py Massdm
- kubernetes - 在 Kubeadm 1.13.12 上生成新的 conf 文件
- javascript - 如何在 jQuery 中使用 for 循环替换 div 中的文本
- javascript - 如何在 React 和新页面中链接 2 个组件仍然有一个导航栏