2012-07-23 76 views
0

我有一個擁有郵寄地址的年輕護理人員的數據庫。有時候年輕人有第二次地址取決於他們與誰住在一起。有時需要將信息發送到地址1或地址2或兩個地址;我使用組合框來告訴我需要使用哪個地址,即地址1,地址2或兩者。我需要一個SQL語句來包含地址1或地址2或使用這兩個地址來創建郵件列表

如何編寫查詢?這是目前的查詢,我只是需要它自動插入正確的地址!

SELECT tblYoungCareerDetails.Flagged 
    , tblYoungCarersDetails.FirstName 
    , tblYoungCarersDetails.LastName 
    , tblYoungCarersDetails.Address1 
    , tblYoungCarersDetails.Address2 
    , tblYoungCarersDetails.Address3 
    , tblGeographicalArea.QuarterStarted 
    , tblYoungCarersDetails.[2ndAddress1] 
    , tblYoungCarersDetails.[2ndAddress2] 
    , tblYoungCarersDetails.[2ndAddress3] 
    , tblMailOutList 
    , tblYoungCarersDetails.UseAddressLabel 
FROM (tblYoungCarersDetails 
INNER JOIN tblMailOutDetails 
    ON tblYoungCarersDetails.YoungCarersID = tblMailOutDetails.YoungCarersID) 
INNER JOIN tblGeographicalArea 
    ON (tblMailOutDetails.YoungCarersID) 
    AND (tblMailOutDetails.YoungCarersID = tblGeographicalArea.YoungCarersID) 
WHERE (((tblMailOutDetails.MailOutList)=Yes)); 

這給了我所有的年輕的職業生涯中我的郵件接收細節的服務水平,我現在該如何確保他們得到傳遞到正確的地址信息?

+2

哪裏有關於您需要使用哪個地址的信息?你說過你用'ComboBox'選擇它 - ComboBox在哪裏,信息在哪裏去? – zimdanen 2012-07-23 18:48:34

+0

你有沒有試過病例陳述? – Limey 2012-07-23 18:48:48

+1

@Limey Case在MS Access中不可用。 – Fionnuala 2012-07-23 19:01:15

回答

0

您可以選擇第一個地址和第二個地址作爲聯合查詢。

SELECT a.* 
    , tblGeographicalArea.QuarterStarted 
    , tblMailOutDetails.MailOutList 

FROM (

(SELECT YoungCarersID 
    , "Select Address1" As WhereFrom 
    , t.Flagged 
    , t.FirstName 
    , t.LastName 
    , t.Address1 
    , t.Address2 
    , t.Address3 
    , t.UseAddressLabel 
FROM tblYoungCarersDetails t 
WHERE t.UseAddressLabel = "Address 1" 
    OR t.UseAddressLabel = "Both" 

UNION 
SELECT YoungCarersID 
    , "Select Address2" As WhereFrom 
    , t.Flagged 
    , t.FirstName 
    , t.LastName 
    , t.[2ndAddress1] 
    , t.[2ndAddress2] 
    , t.[2ndAddress3] 
    , t.UseAddressLabel 
FROM tblYoungCarersDetails t 
WHERE t.UseAddressLabel = "Address 2" 
    OR t.UseAddressLabel = "Both") As a 

INNER JOIN tblMailOutDetails 
    ON a.YoungCarersID = tblMailOutDetails.YoungCarersID) 

INNER JOIN tblGeographicalArea 
    ON tblMailOutDetails.YoungCarersID = tblGeographicalArea.YoungCarersID 
WHERE tblMailOutDetails.MailOutList=Yes 
+0

謝謝,當我明天上班,讓你知道的時候會試試!非常感謝你的幫助! – user1546598 2012-07-23 20:54:22

+0

這工作,但它不會拿起查詢中的「兩個地址」,我想它拿起地址1和地址2,但它只是拿起第一個地址。 – user1546598 2012-07-24 10:04:21

+0

它拾取這兩個地址,但是調用相同的名稱,這是聯合查詢的要點。我會做一個小小的改變來證明這一點。 – Fionnuala 2012-07-24 10:10:38