2012-09-27 151 views
0

我需要从两个不同的表中获取名为SymNumber的列。两者都将使用类似的标准进行选择。以下是我迄今为止,它不工作...从两个不同的表中选择相同的列T-SQL

DECLARE @date datetime 

SELECT @date = LastChangeDate 
FROM QueueUpdates 

SELECT DISTINCT u.CompanyCode, u.AgentId 
FROM SymNumberToAgentId u, AgentIdToTradingPartner a, TradingPartner t, AgentContEd c 
WHERE u.SymNumber in 
(SELECT SymNumber FROM 
(SELECT a.SymeNumber, c.SymNumber 
FROM AgentProductTraining a, AgentContEd c 
WHERE a.LastChangeDate >= @date and c.LastChangeDate >= @date) a) and 
u.AgentId = a.AgentId and a.TradingPartnerCode = t.TradingPartnerCode and t.TradingPartnerCode = 'SE2' 

GO 

让我头疼的部分是内部查询下面列出。我认为调整这部分将允许我从两个表中获取SymNum列。

(SELECT SymetraNumber FROM 
(SELECT a.SymetraNumber, c.SymetraNumber 
FROM AgentProductTraining a, AgentContEd c 
WHERE a.LastChangeDate >= @date and c.LastChangeDate >= @date) a) 

回答

4

UNIONUNION ALL看起来不错的选择在这里:

(
    SELECT SymetraNumber 
    FROM AgentProductTraining a 
    WHERE a.LastChangeDate >= @date 
    UNION 
    SELECT SymetraNumber 
    FROM AgentContEd c 
    WHERE c.LastChangeDate >= @date 
) 
相关问题