Msg 156,Level 15,State 1,Line 67
关键字' OR'附近的语法不正确。
WHERE cast (INVOICEDATE as date)>=@FROMDATE
AND InvoiceStatusID=('IN' OR 'OR')
AND SALESHEADER.ParentAccountID NOT IN (SELECT ACCOUNTID FROM [YVFSQL-REPORT].DBO.ExcludedAccounts where WarehouseID=1)
AND SALESHEADER.ParentAccountID NOT IN (SELECT ACCOUNTID FROM GetProducePartnerAccountID_ByWarehouseID(1))
答案 0 :(得分:1)
您不能使用equals =来比较多个值。这是一个布尔表达式。改为使用IN。
WHERE cast (INVOICEDATE as date)>=@FROMDATE AND InvoiceStatusID IN ('IN', 'OR')
答案 1 :(得分:1)
根据我的理解,下面的语法行正在寻找完全匹配。
let texture (fruit : IFruit) =
match fruit with
| AvocadoTexture t -> t
| _ -> String.Empty
您可以使用IN语法,因为IN是多个OR的简写。
InvoiceStatusID=('IN' OR 'OR')
答案 2 :(得分:0)
想重新写入
1)使用IN进行invoicestatus更正问题
2)并使用NOT EXISTS而不是内部连接而不是两个NOT IN子查询
WHERE cast (INVOICEDATE as date)>=@FROMDATE
AND InvoiceStatusID in ('IN','OR')
AND NOT EXISTS
(SELECT 1 FROM [YVFSQL-REPORT].DBO.ExcludedAccounts T1
INNER JOIN GetProducePartnerAccountID_ByWarehouseID(1) T2
ON
T1.ACCOUNTID = T2.ACCOUNTID
AND SALESHEADER.ParentAccountID = T1.ACCOUNTID
AND T1.WarehouseID=1 )