1

我有两个系统在相同的数据库上运行相同的软件。对于报告,我需要在工单表上报告。我链接了两个服务器并在两个票证表之间创建了一个联合,但我仍然得到重复的记录。该软件确实在两个系统之间复制票证数据,但这是“预”复制的报告,这意味着

我需要票表 A 中的所有票,我只需要票表 B 中我还没有的记录。在这种情况下,票号是唯一的。我正在使用这些表中的几个列,例如车辆 ID、客户名称、价格、数量等。还有许多公式。将它们全部命名会非常广泛。是否有另一种方法可以将两个表中的所有列都放入视图中,但只能看到 distnct 记录

我试图创建这样的视图:

CREATE VIEW  vw_combinedtickettable as
SELECT * 
FROM dbo.Ticket
UNION
SELECT *  from LinkedServer.Database2.dbo.ticket

思考使用 justunion和 notunion all会起作用,但事实并非如此。

任何帮助都会很棒。

4

2 回答 2

1
SELECT  * 
FROM    dbo.Ticket
UNION ALL
SELECT  *
FROM    LinkedServer.Database2.dbo.ticket
WHERE   ticketNumber NOT IN
        (
        SELECT  ticketNumber
        FROM    dbo.Ticket
        )
于 2013-09-20T20:40:21.643 回答
0

你可以试试:

    CREATE VIEW vw_combinedtickettable AS
    SELECT * FROM dbo.Ticket t1
    UNION ALL
    SELECT t2.* FROM dbo.Ticket t1
    LEFT JOIN LinkedServer.Database2.dbo.ticket t2
    ON t1.id = t2.id
    AND t1.id IS NULL

希望这可以帮助!

于 2013-09-20T20:36:38.063 回答