2017-04-07 114 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

相關問題