2011-06-06 125 views
1

我怎樣才能將二者結合起來的SQL查詢到一個:如何合併兩個SQL查詢

strQuery = "select * from UNITHD where driver1medical BETWEEN '1/1/1990' and GETDATE()+29 ORDER BY driver1medical" 
objMedicalDriver1.Open strQuery 

strQuery = "select * from UNITHD where driver2medical BETWEEN '1/1/1990' and GETDATE()+29 ORDER BY driver1medical" 
objMedicalDriver2.Open strQuery 

我確實發現了很多的例子在這裏計算器,但我不能得到它要工作:-(

+0

什麼是driver1medical/driver2medical的DDL? – Chandu 2011-06-06 16:13:45

+0

您是否想要兩個駕駛員醫療都處於日期範圍內(AND)或哪個駕駛員醫療中的一個或另一個或兩者都在該範圍內(OR)? – DOK 2011-06-06 16:14:49

回答

4
select * from UNITHD 
where (driver1medical BETWEEN '1/1/1990' and GETDATE()+29) 
    or (driver2medical BETWEEN '1/1/1990' and GETDATE()+29) 
ORDER BY driver1medical 
+0

今天是GETDATE。 GETDATE + 29大約一個月後。 – DOK 2011-06-06 16:16:23

+0

@DOK - 謝謝,我想知道如何工作。 – Sparafusile 2011-06-06 16:17:30

+0

該代碼解析,請檢查您的輸入。 – HLGEM 2011-06-06 16:29:32

1

這樣它應該列出所有結果相結合,請記住,要使用UNION操作數,您需要替換*爲兩個查詢中的屬性列表,以便它們匹配(包括數字和域):

select * from UNITHD where driver1medical BETWEEN '1/1/1990' and GETDATE()+29 ORDER BY driver1medical 

UNION 

select * from UNITHD where driver2medical BETWEEN '1/1/1990' and GETDATE()+29 ORDER BY driver1medical 
+0

爲什麼在兩個查詢都來自同一個表時使用聯合? – Sparafusile 2011-06-06 16:16:40

+0

@Sparafusile你是絕對正確的,我沒有真正停下來詳細查看查詢,只是發佈了一個可能的工作解決方案。我的錯! – guiman 2011-06-06 17:02:21