[英]Show multiple row as one row SQL Server 2008
我有以下查询。
执行后我的结果就是这个。
但问题是在这里发票没有'I261001001S000371'有2条记录。 我希望显示为1条记录。 发票现金金额和支票金额的均值应显示在一行中。
有什么想法吗?
将您的select语句更改为SUM
Cash
and Cheque
and Credit
列GROUP BY InvoiceNo, NetAmount, Settle
这样,每张发票都会显示您在Case语句中指定的每个列的总数,并将它们全部放在一行中
尝试此查询:使用aggrigate功能汇总所有发票号码的所有现金。 我不确定和解。 您可以使用aggrigate,IF需要。
SELECT InVoiceNo, sum(cash), sum(cheque),
sum(credit), NetAmount, Settle
from
(--Your select query to get result as specified in question) as a
group by InVoiceNo, NetAmount, Settle
您可以使用带有CTE的Over
InvoiceNo
按InvoiceNo
对它们InvoiceNo
:
WITH CTE AS
(
SELECT InvoiceNo, NetAmount, Settle, Credit,
RN = ROW_NUMBER() OVER ( PARTITION BY InvoiceNo ORDER BY InvoiceNo ),
Cash = SUM(CASH) OVER ( PARTITION BY InvoiceNo ),
Cheque = SUM(Cheque) OVER ( PARTITION BY InvoiceNo ),
Credit = SUM(Credit) OVER ( PARTITION BY InvoiceNo )
FROM dbo.InvoiceHeader -- ... and other tables ...
)
SELECT InvoiceNo, NetAmount, Settle, Cash, Cheque, Credit
FROM CTE WHERE RN = 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.