2017-04-10 66 views
-1

好日子SQL視圖進行搜索表或其它視圖

願你好心幫助我,我有了txDate,參考SQL視圖,金額 像

select TxDate, Reference, Amount 
    FROM Transactions 

然後,我有一個表叫期間,有PeriodId,起始日期和結束日期

所以週期是一個月, LIKE

PeriodID   StartDate    EndDate 
    1     2017/01/01    2017/01/31 
    2     2017/02/01    2017/02/29 
    3     2017/03/01    2017/03/31 
    4     2017/04/01    2017/04/30 

依此類推,直到十二月,這將是一段12,

所以我想有查詢搜索使用txDate期表我的SQL視圖,例

 if txDate is '2017/02/25' 

查詢必須返回PeriodID其中TxDate是起始日期日期和結束日期之間,所以在這種情況下應該是2

所以我的結果應該是這樣的

txDate    Reference    Amount   PeriodID 
    2017/02/25   INVOO1    2000    2 
    2017/01/04   REC002     30    1 
    2017/03/05   SALE     5000    3 

如何使搜索該表的PEINID到我的SQL視圖...?

+0

請格式化文字不是圖片。 – jarlh

+0

添加想要的結果 - 以及格式化文本。向我們展示您當前的查詢嘗試。 – jarlh

+0

只有當您100%確定您的期間表中沒有重疊的期間時,纔可以使用 – GuidoG

回答

0

如果你確定Period表內的開始和結束日期永不重疊,並且總有在你的TxDate匹配的週期表中的記錄,這是相當簡單:

SELECT tran.TxDate, 
     tran.Reference, 
     tran.Amount, 
     peri.idPeriod 
FROM Transactions tran 
JOIN Period  peri 
    ON tran.TxDate BETWEEN peri.PeriodStartDate and peri.PeriodEndDate, 
+0

謝謝@Robert –