[英]How to select only customer data and sum of that at bottom of table as row using sql query?
我有 sql 查詢。 此查詢為我提供了大量客戶記錄以及該憑證和訂單小計,但我想要表底部位置的借方和貸方行以及貸方和借方列的總和。
所以指導我如何使用查詢來實現這個表。
這是我的 sql 查詢。
declare @Credit decimal(18,2)
declare @Debit decimal(18,2)
select @debit= SUM(sd.SubTotal)
from SalesOrderDetails sd
left join SalesOrder so
on sd.SalesOrderId = so.SalesOrderId
select @credit = SUM(Amount) from Vouchers
SELECT CustomerId,
OrderDate,
VoucherType,
VoucherNo,
SUM(Debit) as Debit,
SUM(Credit) as Credit
FROM (SELECT so.CustomerId,
so.OrderDate ,
'Sales' As VoucherType,
'' AS VoucherNo,
a.Total As Debit
, NULL As Credit
from SalesOrder so
inner join (
SELECT SalesOrderId,
sum(SubTotal) AS Total
FROM SalesOrderDetails
group by SalesOrderId
)as a
on so.SalesOrderId = a.SalesOrderId
UNION ALL
SELECT V.CustomerId
,v.VoucherDate As OrderDate
, 'Receipt' AS VoucherType
,v.VoucherNumber AS VoucherNo
,NULL AS Debit
,v.Amount AS Credit
from Vouchers v
) ledger
GROUP BY GROUPING SETS ((CustomerId),(OrderDate, VoucherType, VoucherNo), ())
我附上了我的輸出圖像。
在我的圖像中,我得到了這個結果,但這是一個非常混亂的過程,所以給我一個適當的解決方案。
添加在分組和聚合之后發生的 HAVING 子句?
....
GROUP BY GROUPING SETS ((CustomerId),(OrderDate, VoucherType, VoucherNo), ())
HAVING VoucherType Is Null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.