2017-04-07 115 views
-2

我有两个表,它们共享一个链接这两个键。表A有一个日期栏(格式为MM/DD/YYYY),表B有一个格式为(YYYY-MM-DD HH:MM:SS)的日期栏。根据另一个表中的日期选择日期范围内的行。 (MYSQL)

我需要做的是选择所有表B中的,有一个关键的匹配表一和表A中发现

编辑中的日期字段30天的日期字段:两个变量都是VARCHAR处理,这是我目前的(在连接中使用别名formattedEffective的错误)。我认为如果我能以这种方式使用别名,下面的方法就行得通。

select *, 
DATE_FORMAT(STR_TO_DATE(`Eff_date`, '%m/%d/%Y'), '%Y-%m-%d') as formattedEffective 
from `customers` 
    right join `dispatch` on `customers`.`Member_no` = `dispatch`.`Member_no` 
     AND `dispatch`.`sortdate` > formattedEffective 
     AND `dispatch`.`sortdate` < DATE_ADD(formattedEffective,INTERVAL 30 DAY) 
+2

你能分享一下你试过的吗?为了能够帮助您,我们必须查看包含少量数据的表格。 –

+0

显示您到目前为止所尝试的内容。您的努力不会得到我们的帮助。 –

+0

更新了我现在的查询(不要以为我可以用'formattedEffective'这个方式我想在那里。 – Bryant

回答

1

社区要求的是能够创建场景以给出问题的确定答案(创建表语句,示例数据等)。下面的方法是猜测。

查询所做的假设是eff_date是一个字符串,sortdate存储为MySQL日期(即date,datetime,timestamp)。

select d.*, 
     str_to_date(c.eff_date, '%m/%d/%Y')) as formattedEffective 
    from customer c 
    join dispatch d on ( d.member_no = c.member_no 
        and d.sortdate between str_to_date(c.eff_date, '%m/%d/%Y') 
             and str_to_date(c.eff_date, '%m/%d/%Y') + interval 30 day); 
+0

这样做的伎俩......我不知道为什么我不认为只是在联合本身中使用别名的定义。太感谢了!!! – Bryant

相关问题