嗨,這是一個相當棘手的問題(對我而言)。我有三張桌子。只返回最大值小於指定值的行
一個包含了手機號碼和唯一的ID(tbldealermobiles)
FCS - Mobile number
1234 - 07464648787
1234 - 07565465465
3566 - 07878989989
7899 - 07464646466
7899 - 07565465464
9654 - 07589898998
一個包含購買日期以及一個獨特的ID和其他細節(tblhistory)
FCS - purchase date - purchased
1234 - 22/04/2013 - gloves
1234 - 14/03/2013 - hat
1234 - 01/03/2013 - coat
3566 - 20/04/2013 - gloves
3566 - 19/04/2012 - hat
7899 - 14/03/2013 - shoes
9654 - 24/05/2013 - hat
9654 - 19/04/2013 - shoes
一個包含客戶類型和獨特ID和其他細節。 (tblAllDealers)
FCS - Cust type - name
1234 - Virtual - Jim
3566 - Outbound - Jon
7899 - Virtual - Jack
9654 - Outbound - Susan
我的問題是當我想要顯示,如果他們是「出站」和60多天前,如果他們的虛擬誰已超過30天前購買的客戶。
我只想爲喬恩和傑克返回所有手機號碼,因爲其他人在爲其客戶類型指定的日期之後購買了手機號碼。
我正在使用INNER JOIN鏈接唯一ID(FCS)上的3個表,我使用MAX返回只有MAX值小於日期的值,但我不知道如何將標準添加到指定兩個不同的日期。
下面是該查詢我到目前爲止 -
SELECT *
FROM tbldealermobiles
INNER JOIN tblhistory ON tbldealermobiles.FCS = tblhistory.FCS
INNER JOIN tblAllDealers ON tbldealermobiles.FCS = tblAllDealers.FCS
WHERE (tblAllDealers.CustGroup = 'Virtual' AND
tblhistory.PurchaseDate < date('2013-03-22'))
OR
(tblAllDealers.CustGroup = 'Outbound' AND
tblhistory.PurchaseDate < date('2013-04-21'))
GROUP BY tbldealermobiles.mobilenumber
HAVING MAX(tblhistory.PurchaseDate) < date('2013-04-21')
ORDER BY tblhistory.PurchaseDate DESC
的問題是,FCS將可能總是有一個購買日期早於指定的日期,但我只想要回那不是招」手機號碼t根據客戶組指定日期之後獲得購買日期。
在此先感謝您的幫助。
編輯:感謝格式化我的代碼Dukeling。
您正在使用哪個數據庫? –
MySQL 5.5.27 - 我猜這就是你的意思? –