0

我需要从两个不同的表中获取一个名为 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 )
4

1 回答 1

4

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

(
    SELECT SymetraNumber 
    FROM AgentProductTraining a
    WHERE a.LastChangeDate >= @date 
    UNION
    SELECT SymetraNumber 
    FROM AgentContEd c 
    WHERE c.LastChangeDate >= @date
)
于 2012-09-27T15:05:18.373 回答