簡體   English   中英

如何使用sql查詢僅選擇表底部的客戶數據和總和作為行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM