我在寫報告存儲過程。我想獲得未確認和非開票採購訂單的數量,並可以(可選)在CustomerID
上過濾。報告存儲過程 - 如何避免重複?
我在下面的工作如預期,但我擔心,a)它很慢,b)WHERE
條款的CustomerID
部分有重複。
你會如何編寫這個存儲過程,堆棧溢出?
SELECT
(SELECT COUNT(*)
FROM PurchaseOrder
WHERE AcknowledgmentStatus <> 'Complete'
AND (@CustID = 0 OR CustomerID = @CustID)
) AS NonAckd,
(SELECT COUNT(*)
FROM PurchaseOrder
WHERE InvoiceStatus <> 'Complete'
AND (@CustID = 0 OR CustomerID = @CustID)
) AS NonInvoiced
這就是我一直在尋找的東西!我不敢相信我從未見過'CASE WHEN'結構。 – 2010-01-26 18:45:22