我有一個SQL代碼在這裏我做了,我試圖找出如何使用情況和分組功能來代替文字值「所有「爲空值的彙總行。我也想過濾以AZ,MI,OH結尾的狀態結果。這是編寫代碼的正確方法嗎?使用情況和分組功能,與空彙總行代替文字值值
SELECT AccountDescription AS Account, VendorState, SUM(invoicelineitemamount) as LineItemSum
CASE
WHEN ISNULL THEN '*ALL*'
END
FROM ap.dbo.Vendors
JOIN ap.dbo.Invoices
ON Vendors.VendorID = Invoices.VendorID
JOIN ap.dbo.invoicelineitems
ON Invoices.InvoiceID = InvoiceLineItems.InvoiceID
JOIN ap.dbo.GLAccounts
ON InvoiceLineItems.AccountNo = GLAccounts.AccountNo
WHERE VendorState IN ('AZ', 'MI', 'OH')
GROUP BY AccountDescription, VendorState WITH CUBE
什麼設置分組等於1嗎?我只是從書中複製它,它沒有提供解釋它爲什麼這樣做。 – 2014-11-21 00:44:20
@Lisa謝霆鋒,分組功能通過多維數據彙總行返回null值,則返回1 – radar 2014-11-21 01:02:54
@RADAR SQL Server 2012的肯定支持CUBE,它尚未刪除(未在2014年任)。 ROLLUP在功能上並不等同 - CUBE爲所有組合生成彙總行,ROLLUP不會。 – jpw 2014-11-21 01:26:21