我正在製作一個圖書館的網頁,我需要製作一份清單,顯示過去一年內沒有出租的所有書籍。Stuck on SQL Query(Distinct?)
目前我有一個查詢過濾租表上的所有記錄都是租用的書籍。但可以多次出租,這樣一本書可以在表格中多次出現。問題在於,一本書一年多沒有租給一個人,但在過去的一年裏,同一本書是租給另一個人的,因爲它看到了一個滿足條件的記錄,所以它仍然顯示該書。但是我需要知道哪些書在過去的一年裏根本沒有出租。任何人都可以幫助我嗎?
我將實際查詢更改爲更容易理解的查詢(語言差異),因此不要檢查拼寫錯誤或簡單的語法問題。
我查詢a.t.m:
SELECT
Book.BookID,
Book.BoekTitle,
Writer.WriterName
FROM (
(Book INNER JOIN BookWriter ON Book.BookID=BookWriter.BookID)
INNER JOIN Writer ON BookWriter.WriterID=Writer.WriterID
)
INNER JOIN BookRenting ON Book.BookID=BookRenting.BookID
WHERE
BookRenting.RentDate < DATEADD('yyyy', -1, NOW());
我使用MS Access數據庫!
在此先感謝幫助我!
這是錯誤的,這將在去年一年退還所有圖書,他要在去年沒有出租的列表 –
不,這項技術的工作原理。我沒有Access,但我用SQLServer測試過它,它工作正常。雖然您必須爲Access進行任何語法修復。想法是子查詢在去年獲得所有租金。然後,我們挑選不在該列表中的書籍。這給我們留下了去年沒有人想要租用的不受歡迎的書籍,我瞭解的是OP的內容。 – Grubl3r
檢查此http://sqlfiddle.com/#!3/a7a94/2爲您的查詢,子查詢返回所有行在一年前,而不是去年,他從年減去-1,您的查詢將是有效的,如果子查詢是檢查'BookRenting.RentDate> = DATEADD('yyyy',-1,NOW()' –