我有一小部分發票記錄。我想提取 180 天以前和更新的所有記錄作為宣告。在某些情況下,我還想顯示超過 180 天的未付發票。當我添加第二個 AND 時(Orders.[OrderPaid])=NO)
,0-180 天的記錄不顯示。0-180 天標準無需(Orders.[OrderPaid])=NO)
添加即可完美運行。(Orders.[OrderPaid])=NO)
沒有 0-180 天標準的作品。
我試過的代碼是:
HAVING (((Customers.[CustomerID])=[Forms]![OrdersByCustomer]![CustomerID]) AND (DateAdd("d", -180, Now())<=Orders.[Invoice Date]) AND (Orders.[OrderPaid])=NO)
和:
HAVING (((Customers.[CustomerID])=[Forms]![OrdersByCustomer]![CustomerID]) AND (DateAdd("d", -180, Now())<=Orders.[Invoice Date]) OR (Orders.[OrderPaid])=NO)
有人可以建議正確的語法或方法嗎?
uj5u.com熱心網友回復:
括號在這里至關重要,它有助于洗掉自動生成的括號并格式化 SQL。
HAVING Customers.[CustomerID] = [Forms]![OrdersByCustomer]![CustomerID]
AND (
DateAdd("d", -180, Now()) <= Orders.[Invoice Date]
OR
Orders.[OrderPaid] = NO
)
主括號需要圍繞第 2 和第 3 子句 (OR),而不是第 1 和第 2。
原因:在SQL中AND的優先級高于OR。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508025.html