【发布时间】:2010-01-26 18:29:28
【问题描述】:
我正在编写一个报告存储过程。我想获取未确认和未开票的采购订单的数量,并能够(可选)过滤CustomerID。
我下面的内容按预期工作,但我担心 a) 它很慢 b) WHERE 子句的 CustomerID 部分存在重复。
你会如何编写这个存储过程,Stack Overflow?
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
【问题讨论】:
标签: sql sql-server stored-procedures refactoring query-optimization