SQL在一行中显示2行

时间:2014-11-24 03:28:17

标签: sql sql-server sql-server-2008 stored-procedures

我有这样的查询。

Query

执行后我得到了以下结果。

Result

我想要做的是每张发票否我想把'金额'显示为CashAmt和ChequeAmt 在一排。目前有2条现金和支票记录。

1 个答案:

答案 0 :(得分:3)

您正在尝试pivot您的搜索结果。您可以使用group bymaxcase

执行此操作
select mdr.invoiceno, mdr.invoicedate, mdr.customerid, mdr.netamount, cus.name,
    max(case when pt.Name = 'Cash' then pay.amount end) CashAmt,
    max(case when pt.Name = 'Cheque' then pay.amount end) ChequeAmt
from customer cus
    ....
group by mdr.invoiceno, mdr.invoicedate, mdr.customerid, mdr.netamount, cus.name
order by mdr.invoiceno