Tsql 从两个不同的表T-SQL中选择相同的列

Tsql 从两个不同的表T-SQL中选择相同的列,tsql,Tsql,我需要从两个不同的表中获取一个名为SymNumber的列。两者都将使用类似的标准进行选择。下面是我到目前为止所做的,但它不起作用 DECLARE @date datetime SELECT @date = LastChangeDate FROM QueueUpdates SELECT DISTINCT u.CompanyCode, u.AgentId FROM SymNumberToAgentId u, AgentIdToTradingPartner a, TradingPartner t

我需要从两个不同的表中获取一个名为SymNumber的列。两者都将使用类似的标准进行选择。下面是我到目前为止所做的,但它不起作用

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 )
或者
UNION ALL
在这里看起来是不错的选择:

(
    SELECT SymetraNumber 
    FROM AgentProductTraining a
    WHERE a.LastChangeDate >= @date 
    UNION
    SELECT SymetraNumber 
    FROM AgentContEd c 
    WHERE c.LastChangeDate >= @date
)
或者
UNION ALL
在这里看起来是不错的选择:

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