我想合并或UNION两个查询
查询结果列的类型和大小相同,但每个列的表不同。可以吗?
第一个是Absent表,第二个是Attend Table。这两个表基本上是完全相同的(不知道为什么必须有2个表,如果1就足够了)
SELECT DISTINCT dmg.dmg_FirstName,
dmg.dmg_Surname,
lnk.lnk_ID,
dlk.dlk_AssessDate,
dmg.dmg_Sex,
trn.ScotHealthboard
FROM DAILY_LINK dlk
JOIN Absent ab ON ab.ScotRefID = dlk.dlk_ID
JOIN Link lnk ON lnk.lnk_ID = ab.Person_ID
JOIN Demographic dmg ON dmg.dmg_ID = lnk.lnk_dmgID
JOIN Training trn ON trn.Trn_ID = ab.Training_ID
WHERE dlk.dlk_AssessDate >= '2015/01/01' AND dlk.dlk_AssessDate <= '2015/12/01';
UNION
SELECT DISTINCT dmg.dmg_FirstName,
dmg.dmg_Surname,
lnk.lnk_ID,
dlk.dlk_AssessDate,
dmg.dmg_Sex,
trn.ScotHealthboard
FROM DAILY_LINK dlk
JOIN Attend at ON at.ScotRefID = dlk.dlk_ID
JOIN Link lnk ON lnk.lnk_ID = at.Person_ID
JOIN Demographic dmg ON dmg.dmg_ID = lnk.lnk_dmgID
JOIN Training trn ON trn.Trn_ID = at.Training_ID
WHERE dlk.dlk_AssessDate >= '2015/01/01' AND dlk.dlk_AssessDate <= '2015/12/01';
答案 0 :(得分:2)
我怀疑;
之前union
导致错误。如果你删除它,它应该运行正常。
SELECT DISTINCT dmg.dmg_FirstName,
dmg.dmg_Surname,
lnk.lnk_ID,
dlk.dlk_AssessDate,
dmg.dmg_Sex,
trn.ScotHealthboard
FROM DAILY_LINK dlk
JOIN Absent ab ON ab.ScotRefID = dlk.dlk_ID
JOIN Link lnk ON lnk.lnk_ID = ab.Person_ID
JOIN Demographic dmg ON dmg.dmg_ID = lnk.lnk_dmgID
JOIN Training trn ON trn.Trn_ID = ab.Training_ID
WHERE dlk.dlk_AssessDate >= '2015/01/01' AND dlk.dlk_AssessDate <= '2015/12/01'
UNION
SELECT DISTINCT dmg.dmg_FirstName,
dmg.dmg_Surname,
lnk.lnk_ID,
dlk.dlk_AssessDate,
dmg.dmg_Sex,
trn.ScotHealthboard
FROM DAILY_LINK dlk
JOIN Attend at ON at.ScotRefID = dlk.dlk_ID
JOIN Link lnk ON lnk.lnk_ID = at.Person_ID
JOIN Demographic dmg ON dmg.dmg_ID = lnk.lnk_dmgID
JOIN Training trn ON trn.Trn_ID = at.Training_ID
WHERE dlk.dlk_AssessDate >= '2015/01/01' AND dlk.dlk_AssessDate <= '2015/12/01';