繁体   English   中英

将多行显示为SQL Server 2008的一行

[英]Show multiple row as one row SQL Server 2008

我有以下查询。

在此输入图像描述

执行后我的结果就是这个。

在此输入图像描述

但问题是在这里发票没有'I261001001S000371'有2条记录。 我希望显示为1条记录。 发票现金金额和支票金额的均值应显示在一行中。

有什么想法吗?

将您的select语句更改为SUM Cash and Cheque and CreditGROUP 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 InvoiceNoInvoiceNo对它们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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM