如何从两个表中创建一个视图或表,以便它们的行不合并?

时间:2013-02-26 18:32:08

标签: sql-server

我有两个视图,我希望将它们合并到一个视图中,以便它们的记录不会合并到一个记录中!我的意思是假设我有这些表:

表一(假设这是一张销售表,我们的客户卖了东西!)

  Date           Description           Fee       Number        Money           
12/2/2012        something             10$        20          200$
10/3/2012      somethingelse           20$        30          600$

表二(假设这是我们的客户有钱的桌子!)

  Date           Description           Money           
02/8/2012        someinfo              5000$
12/1/2012         stuff                3100$

结果表或视图将是(基于日期的降序):

  Date           Description           Fee       Number        Money  
02/8/2012        someinfo               0          0           5000$    
10/3/2012      somethingelse           20$        30           600$
12/2/2012        something             10$        20           200$
12/1/2012         stuff                 0          0           3100$

我如何实现这种形式?这两个表是分开的,但每个表都有一个唯一的个人ID,代表销售人员帐户。 (所以基本上这意味着这些信息只属于一个人。我们的客户想要一份只给他这个特定视图的报告!) 我尝试在这两个表上使用UNION,但合并的行! 如果我使用连接,那么只有一行将两个表行合并在一起。所以我被困在这里,不知道现在该做什么。

3 个答案:

答案 0 :(得分:2)

我认为应该这样做。

CREATE VIEW new_view AS

SELECT * FROM table_one

UNION ALL

SELECT *, 0 as Fee, 0 as Number FROM table_two;

答案 1 :(得分:2)

我认为你需要UNION ALL而不仅仅是UNION。

select Date, Description, Fee, Number, Money
from table1
    UNION ALL
select Date, Description, 0 Fee, 0 Number, Money
from table2
order by Date

答案 2 :(得分:2)

尝试类似

的内容
CREATE VIEW vMyView
AS
SELECT [Date], [Description], [Fee], [Number], [Money]
FROM v1
UNION ALL
SELECT [Date], [Description], 0 AS [Fee], 0 AS [Number], [Money]
FROM v2