這是學生圖書館項目的一部分。插入語句不會在數據庫中插入多於一行
有2個表:alerts
和borrows
。
borrows
包含studentID
,bookID
和date of borrowing
。
alerts
指示哪些學生過期多少本書。
該代碼應該爲每個過期的學生插入一行,並計算過期的書籍數量。
Est_Return_Date = return_date + 30
insert into dbo.Alert (studentID, AlertCount)
values ((select distinct (studentID)from dbo.Borrows
where Est_Return_Date < GETDATE()
and return_date is null),
(select count(studentID) from dbo.Borrows
where Est_Return_Date < GETDATE()
and return_date is null))
計數將始終返回一個值。而另一個選擇可能還會返回一個值,那就是你的問題。你有錯誤的查詢 –
在查詢中使用'GetDate()'是追逐一個移動的目標,影響性能,並可能產生好奇的結果。隨着日期的變化。在變量中捕獲當前日期/時間幾乎總是一個更好的主意,然後根據需要使用該值。在存儲過程中,這在多個語句中更重要。多次使用'GetDate()'的最常見原因是捕獲長時間運行操作的開始和結束時間。 – HABO