2017-10-09 188 views
0

請參閱本如果可能的話在SQL Server:比較,如果日期在SQL Server的兩個日期之間

我有兩個表具有以下屬性:

一個

AId prm_code dateTrom  dateTo 
1 sql/mn/01 01/01/2017 30/03/2017 
2 sql/mn/01 01/04/2017 30/06/2017 

B

BId prm_code qty price tDate 
1 sql/mn/01 10 10  03/01/2017 
2 sql/mn/01 1  11  03/01/2017 
3 sql/mn/01 12 100  05/01/2017 
4 sql/mn/01 5  50  10/02/2017 
5 sql/mn/01 20 10  15/03/2017 

現在我想創建一個查詢從表得到援助一個,並從表所有其他行像以下時,從表B中的tDate表一個 dateFrom和dateTo之間下降

BId prm_code qty price tDate  AId 
1 sql/mn/01 10 10  03/01/2017 1 
2 sql/mn/01 1  11  03/01/2017 1 
3 sql/mn/01 12 100  05/01/2017 1 
4 sql/mn/01 5  50  10/02/2017 1 
5 sql/mn/01 20 10  15/03/2017 1 

感謝

+1

[XKCD PSA ISO 8601(https://xkcd.com/1179/) – SqlZim

+1

你爲什麼要跳過3月31日?你試過什麼了?請發佈您的查詢。 –

回答

1

是的,你可以使用JOIN 之間

SELECT B.BId, B.price, B.qty, B.prm_code, B.tDate, A.AId 
FROM [dbo].[TableA] AS A 
JOIN [dbo].[TableB] AS B  
    ON B.tDate BETWEEN A.dateFrom AND A.dateTo 
+0

好看,以前從來沒有見過,ON ... BETWEEN,我在表B中增加了一個額外的行,以查看它並生成了AID 2,這很好。 – russ