我有一個函數,使庫存水平:查詢了從功能多數據PostgreSQL中
select * from stocklevel(ID)
這個功能讓每個ID股票操縱桿。 例如:
select * from stocklevel(23)
結果是:
ID datelevel stocklevel
23 01.01.17 15
23 02.01.17 18
23 05.01.17 20
這是庫存水平的ID=23
。
並非所有的日期都出現,它取決於很多事情。
我想要使用此功能,從我的系統獲得的庫存水平爲各地
基本上是這樣的:
select *,(select stocklevel from stocklevel(parts.partid) where datelevel = ???)
from parts
OR:
select *
from parts
left join (select stocklevel from stocklevel(parts.partid) where datelevel = ???) using (ID)
現在,這個問題是與WHERE
條件我想具體的日期,如'04.01.17',但如果日期不存在,我希望它採取之前的日期如此:
對於ID=23
和日期'04.01.17'
它應該顯示18
,'02.01.17'
。
爲ID=23
和日期'15.01.13'
它應該什麼都不顯示。
爲ID=23
和日期'05.01.17'
它應該顯示20
,'05.01.17'
。
我該怎麼做?
我不知道我理解的音符...... datelevel永遠不能爲null。如果跳過日期,則不會有記錄。 – avi
@avi。 。 。我的意思是,如果您的日期早於該部分的任何庫存水平,那麼該部分將不會退回。 'NULL'來自外連接。 –
我不需要在連接中使用或打開嗎? – avi