我正在搜索具有> 0和<的發票的發票單項表。0發票單項表包含發票中所有項目的詳細信息。我該如何編寫一個查詢,以提供所有發票數量> 0和< 0.搜索發票表格以查找數量大於0且小於0的發票0
0
A
回答
0
這樣的情況如何?這使用兩個查詢。第一個發現負數量的所有發票。然後,它應用第二個查詢從發票清單中查找那些也具有正數量的查詢。
SELECT DISTINCT
PosNegInvoices.InvoiceID
FROM ItemizedInvoice AS NegInvoices
CROSS APPLY
(
SELECT
InvoiceID
FROM ItemizedInvoice
WHERE InvoiceID = NegInvoices.InvoiceID
AND Quantity > 0
) AS PosNegInvoices
WHERE NegInvoices.Quantity < 0
下面是一個使用CTE的另一個版本:
WITH NegInvoices AS
(
SELECT
InvoiceID
FROM ItemizedInvoice
WHERE Quantity < 0
),
PosInvoices AS
(
SELECT
InvoiceID
FROM ItemizedInvoice
WHERE Quantity > 0
)
SELECT DISTINCT
PosInvoices.InvoiceID
FROM NegInvoices
JOIN PosInvoices
ON NegInvoices.InvoiceID = PosInvoices.InvoiceID
+0
感謝您的回覆。我使用了與您建議的CTE相同的方式,但需要大約15分鐘執行查詢。我正在嘗試改進查詢。事實上它的大量數據和詳細的發票。 –
+0
你的索引是什麼?包含InvoiceID和Quantity的項目表上有一個非聚集索引可能會有所幫助。事實上,您甚至可以爲每個負面和正面條件創建篩選索引,具體取決於SQL Server的版本。 – BStateham
相關問題
- 1. 我無法獲取invoiceTotalAmount大於0的發票
- 2. 發現指數大於0
- 3. 查找大於0的最小值
- 4. 數小於0
- 5. java.lang.IndexOutOfBoundsException:索引:0,大小:0?
- 6. java.lang.IndexOutOfBoundsException:索引:0,大小:0
- 7. 如果字段小於0且大於0,則MySQL選擇需要計數
- 8. java.lang.IndexOutOfBoundsException:指數:0,大小:0,ERROR(SearchSMFController.java:120)指數:0,大小:0
- 9. Jquery小於0的數學顯示0
- 10. Rails驗證小於0或大於0,或字段不等於0
- 11. 當數字(大於0)在表格
- 12. 搜索一個線串的數量大於0
- 13. PHP通過支票0 == NULL
- 14. android.database.CursorIndexOutOfBoundsException:請求索引0,大小爲0
- 15. Android無效索引0,大小爲0
- 16. CursorIndexOutOfBoundsException:請求索引0,大小爲0
- 17. java.lang.IndexOutOfBoundsException:索引0無效,大小爲0
- 18. database.CursorIndexOutOfBoundsException:索引0請求,大小爲0
- 19. CursorIndexOutOfBoundsException:請求索引0,大小爲0?
- 20. 當`SelectedIndex`大於0時觸發
- 21. zabbix - 觸發多個項目大於0
- 22. 兩種類型的發票編號(兩個表,0..1關係)
- 23. 正則表達式允許的十進制數大於0且小於100
- 24. Java發票程序 - 將數量設置爲0設置價格爲0.0
- 25. 無效指數0,對於RSS大小爲0 FEED
- 26. Inet6Address.getByName(),得到用於奇數響應0:0:0:0:0:FFFF:0:0
- 27. 正則表達式來驗證數大於0且小於1999年
- 28. 小於10添加0〜數
- 29. 整數大於0小於11的正則表達式
- 30. 添加0,如果數量小於10
添加相關表的模式在你的問題.. –
曾經heared的不等於運營商<>嗎? – Nicktar
我嘗試使用公用表表達式,並且執行查詢導致超出報表的時間很長。 –