道歉,如果這是重複的 - 我已經搜索了一個答案,但我發現並不完全是我正在尋找。SQL Server - 從存儲過程模擬記錄
我有一個非常簡單的存儲過程,從庫存表返回基於日期的股票。這需要開始日期和結束日期 PARAMS與配貨ID。
查詢是像下面...
select
S.Date,
S.Amount
from Stock S
where
S.StockistID = @pi_stockistId and
S.Date >= @pi_startDate and
S.Date <= @pi_endDate
我需要確保的是,總有一個行返回所要求的日期範圍 - 即使是在數據庫中沒有記錄日期和存貨。嘲笑的記錄將有一個零數量。
數據正在通過到外部系統供給,所以不需要插入記錄,除非所述系統增加了從零值(我有沒有必要在表存儲數以千計的空記錄)。
如果來自外部系統的後續調用量的增加,在這一點上,我將插入記錄表。
我知道我可能會創建一個臨時表變量並插入不存在的記錄插入到結果集做到這一點 - 我只是想知道,如果我可以在查詢中做任何事情來阻止其使用表變量。
再次,道歉,如果這已被問及。
我使用SQL Server 2014
感謝
例
這裏的數據從庫存表
------------------------------------
| Date | StockistId | Amount |
------------------------------------
| 12/04/2017 | 1 | 10 |
| 14/04/2017 | 1 | 20 |
------------------------------------
如果我跑我的查詢樣本日期12/04/2017 - 14/04/2017庫存者1,我得到以下...
-----------------------
| Date | Amount |
-----------------------
| 12/04/2017 | 10 |
| 14/04/2017 | 20 |
-----------------------
由於現時13/04/2017
沒有記錄我想做什麼回報...
-----------------------
| Date | Amount |
-----------------------
| 12/04/2017 | 10 |
| 13/04/2017 | 0 |
| 14/04/2017 | 20 |
-----------------------
凡我查詢「嘲笑」了一個紀錄爲13/04/2017年
看到使用ROWCOUNT此鏈接 - http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=140165你希望 – Randy
哪個日期,如果有沒有記錄? – McNets
@McNets日期範圍內的日期,但沒有記錄。我需要嘲笑這些日期的記錄。 –