日期:2014-05-18  浏览次数:20567 次

如何去建立这个视图,急需!!!!
现在有两个表1和表2   ,表1和表2的数据结构是一样的
其中表1
中数据如下
fitem     值       关联       year
D001       10         1           2006
D022       13         1           2006
D004       12         1           2006
D023       17         2           2006
D024       18         2           2007
D021       16         1           2007
D018       15         3           2007

其中表2
中数据如下
fitem     值       关联       year
D001       10         1           2006
D002       10         1           2006
D022       13         1           2006
D004       12         1           2006
D023       17         2           2006
D024       18         2           2007
D028       16         1           2007
D018       15         3           2007


我想生成一个视图,把这两个表合并成一个视图,需要用fitem作为关联把   year,关联,fitem,都相等的值累加起来,不相等作为单独的一条数据列出,

最后形成视图1,其中数据如下:
fitem     值       关联       year
D001       10         1           2006
D002       10         1           2006
D022       26         1           2006
D004       24         1           2006
D023       34         2           2006
D024       36         2           2007
D021       16         2           2007
D028       16         1           2007
D018       30         3           2007

请问各位高人我应该怎么建立这样的视图啊!谢谢,在线等待,急用.

------解决方案--------------------
create view as
select fitem,sum(值) as 值,关联,year from (select * from 表1 union all select * from 表2) t group by year,关联,fitem
------解决方案--------------------
先建立视图V1
SELECT dbo.t1.fitem, ISNULL(dbo.t1.值 + dbo.t2.值, dbo.t1.值) AS 值, dbo.t1.关联,
dbo.t1.[year]
FROM dbo.t1 LEFT OUTER JOIN
dbo.t2 ON dbo.t1.fitem = dbo.t2.fitem

查询
select fitem,值,关联,[year] from v1
union all
select fitem,值,关联,[year] from t2 where fitem not in (select fitem from v1)