sql - 根据日期范围选择记录值

标签 sql sql-server-2008 date range

我有以下两个表:

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 创建一个新 View 。标准是,如果第一个表中的销售日期 (YEAR MONTH DAY) 在第二个表中的 STDATEEDDATE 之间,则应选择正确的 FYYEARFYMONTH

最佳答案

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

关于sql - 根据日期范围选择记录值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12580029/

相关文章:

sql-server-2008 - SQL 服务器修剪

html - 获取html文件的最后修改日期

java - 从 Java 日期/日历获取上季度最后日期

sql - 如何将两个值(行)组合成具有自定义值的单行?

mysql - SQL从表1中选择ID并将相同的ID更新到表2

sql - 在 Oracle 表中添加列

sql - Postgres 使用 jsonb 数组按价格从低到高排序

sql - 文本列不存储超过 8000 个字符

sql-server-2008 - 从链接存储过程插入到本地表

Drupal CCK 日期字段只有小时和分钟