2012-09-25 45 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