SELECT * FROM Customer INNER JOIN Ledger Entry on [No_] = [Customer No_] WHERE No_ NOT IN ([Posting Date] between '2013-10-01' and '2013-10-31')
BETWEEN條件不起作用。使用NOT IN時,BETWEEN條件不起作用
SELECT * FROM Customer INNER JOIN Ledger Entry on [No_] = [Customer No_] WHERE No_ NOT IN ([Posting Date] between '2013-10-01' and '2013-10-31')
BETWEEN條件不起作用。使用NOT IN時,BETWEEN條件不起作用
這不是如何not in
的作品,你比較No_
這似乎是Id
客戶與Posting Date
所以這應該失敗。
我想你想這樣的事情:
SELECT *
FROM Customer c
inner join [Ledger Entry] le on c.[No_] = le.[Customer No_]
where c.[No_] not in (
select l.[Customer No_]
from [Ledger Entry] l
where l.[Posting Date] between '2013-10-01' and '2013-10-31'
)
但對於這樣的查詢應該簡化爲:
SELECT *
FROM
Customer c
inner join [Ledger Entry] le on c.[No_] = le.[Customer No_]
where le.[Posting Date] < '2013-10-01' or le.[Posting Date] > '2013-10-31'
不使用not in
和between
在所有
它應該是'OR',即'在哪裏。[發佈日期] <'2013-10-01'或者。[發佈日期]>'2013-10-31'' –
@HarshGupta true,fixed。非常感謝你。 – gzaxx
非常感謝gzaxx。事實上,我是SQL世界的新手,我仍在學習。 – user3020464
首先,你的日期應該與另一個日期類型列進行比較。
其次,根據Aaron Bertrand,你應該避免使用BETWEEN進行日期,你可以通過文章瞭解他是對的。
所以intead,我建議你繼續作爲;
SELECT * FROM Customer
inner join LedgerEntry
on Customer.[No_] = LedgerEntry.[Customer No_]
where LedgerEntry.[Posting Date] < '2013-10-01' and LedgerEntry.[Posting Date] > '2013-10-31'
嘗試'SELECT * FROM 客戶 上[NO_] = [客戶NO_] 這裏不是 '2013年10月1日' 之間[發佈日期]和 '2013年10月31日' 內加入總帳項' –
'條件不起作用。:: whatz錯誤? –