美好的一天
请你帮助我,我有一个SQL视图,它有txDate,reference,Amount 像
select TxDate, Reference, Amount
FROM Transactions
然后我有一个名为Period的表,它有PeriodId,StartDate和EndDate
所以期间是按月计算的, 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月,这将是第12期,
所以我希望在我的SQL视图中使用txDate来查询Period表,例如
if txDate is '2017/02/25'
Query必须返回TxDate在StartDate和EndDate之间的PeriodID,因此在本例中它应该是2.
所以我的结果应该是这样的
txDate Reference Amount PeriodID
2017/02/25 INVOO1 2000 2
2017/01/04 REC002 30 1
2017/03/05 SALE 5000 3
如何在搜索该表时进行JOIN以将PEriodID引入我的SQL视图... ??
答案 0 :(得分:0)
如果您确定Period表中的开始日期和结束日期永远不会重叠,并且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,