2012-09-25 103 views
3

我有以下兩個表:根據日期範圍選擇記錄值

ITEM AREA YEAR MONTH DAY QTY OL EXQTY EXOL CREATE DATE UPDATE 
------------------------------------------------------------------------  
ABC789 XYZ1234 2012 6 22 0 0 0 0 2012/07/04 2012/09/03 
ABC789 XYZ1234 2012 6 23 0 0 0 0 2012/07/04 2012/09/03 
ABC789 XYZ1234 2012 6 24 0 0 0 0 2012/07/04 2012/09/03 
ABC789 XYZ1234 2012 6 25 0 0 0 0 2012/07/04 2012/09/03 
ABC789 XYZ1234 2012 6 26 0 0 0 0 2012/07/04 2012/09/03 
ABC789 XYZ1234 2012 6 27 0 0 0 0 2012/07/04 2012/09/03 

STDATE  EDDATE  FYYEAR FYMONTH 
--------------------------------------- 
2012/04/23 2012/05/27 2012  11 
2012/05/28 2012/06/24 2012  12 
2012/06/25 2012/07/22 2013  1 
2012/07/23 2012/08/26 2013  2 

我需要創建一個從第一個表中的所有數據的新視圖,以及來自第二個表的FYYEARFYMONTH。標準是如果第一個表(YEAR MONTH DAY)中的銷售日期在第二個表中的STDATEEDDATE之間,則應該選擇正確的FYYEARFYMONTH

回答

2
select table1.*, fyyear, fymonth 
from table1 
    inner join table2 
    on convert(date,convert(varchar(4),table1.year)+'-'+convert(varchar(4),table1.month)+'-'+convert(varchar(4),table1.day),120) 
    between table2.stdate and table2.eddate 
0

試試這個:

select t1.*, 
     FYYEAR , 
     FYMONTH 
from tbl_1 t1 
join tbl_2 t2 
on  cast([YEAR] as char(4))+'-'+ 
     cast([MONTH] as varchar(2))+'-'+ 
     cast([DAY] as varchar(2)) 
     between STDATE and EDDATE