create view Va
as 
select a.*,b.工业占地面积,b.工业总产值,c.教育占地面积,c.教育总产值
from tabel a
left join table2 b on a.市=b.市 and a.县=b.县
left join table3 c on a.市=c.市 and a.县=c.县goselect * from Va

解决方案 »

  1.   

    Create view vw_Test
    as
    select a.市,a.县,a.农业占地面积,a.农业总产值,b.工业占地面积,
           b.工业总产值,c.教育占地面积,c.教育总产值
    from table1 as a
        inner join table2 as b on a.市=b.市 and a.县=b.县
        inner join table3 as c on a.市=c.市 and a.县=c.县
      

  2.   

    select 市=isnull(a.市,isnull(b.市,c.市))
    ,县=isnull(a.县,isnull(b.县,c.县))
    ,农业占地面积=isnull(a.农业占地面积,0),农业总产值=isnull(a.农业总产值,0)
    ,工业占地面积=isnull(b.工业占地面积,0),工业总产值=isnull(b.工业总产值,0)
    ,教育占地面积=isnull(c.教育占地面积,0),教育总产值=isnull(c.教育总产值,0)
    from table1 a
    full join table2 b on a.市=b.市 and a.县=b.县
    full join table3 c on a.市=c.市 and a.县=c.县
      

  3.   

    select a.市,a.县,a.农业占地面积,a.农业总产值,b.工业占地面积,b.工业总产值,c.教育占地面积,c.教育总产值
    from table1 a,table2 b,table3 c
    where a.市=b.市 and a.县=b.县 and a.市=c.市 and a.县=c.县
      

  4.   

    create view viewname as 
    select a.市,a.县,a.农业占地面积,a.农业总产值,b.工业占地面积,b.工业总产值,c.教育占地面积,c.教育总产值 from table1 a
    left join table2 b on a.市=b.市 and a.县=b.县
    left join table3 c on a.市=c.市 and a.县=c.县
      

  5.   

    --或者这样:create view 视图名
    as
    select 市,县
    ,农业占地面积=sum(农业占地面积),农业总产值=sum(农业总产值)
    ,工业占地面积=sum(工业占地面积),工业总产值=sum(工业总产值)
    ,教育占地面积=sum(教育占地面积),教育总产值=sum(教育总产值)
    from(
    select 市,县
    ,农业占地面积,农业总产值
    ,工业占地面积=0,工业总产值=0
    ,教育占地面积=0,教育总产值=0
    from table1
    union all
    select 市,县
    ,农业占地面积=0,农业总产值=0
    ,工业占地面积,工业总产值
    ,教育占地面积=0,教育总产值=0
    from table2
    union all
    select 市,县
    ,农业占地面积=0,农业总产值=0
    ,工业占地面积=0,工业总产值=0
    ,教育占地面积,教育总产值
    from table3
    )a group by 市,县
      

  6.   

    create table table1(市 varchar(10),  縣  varchar(10), 農業占地面積 int, 農業總產值 int)
    Insert into table1 
    select 'A','a1','10','20'
    union all select 'B','b3','3','20'
    union all select 'B','b1','7','25'
    union all select 'C','c1','12','30'create table table2(市 varchar(10), 縣 varchar(10), 工業占地面積 int, 工業總產值 int)
    Insert into table2 
    select 'A','a1','10','20'
    union all select 'B','b3','1','10'
    union all select 'B','b1','5','20'
    union all select 'C','c1','10','45'create table table3(市 varchar(10), 縣 varchar(10), 教育占地面積 int, 教育總產值 int)
    Insert into table3 
    select 'A','a1','10','20'
    union all select 'B','b3','1','25'
    union all select 'B','b1','1','20'
    union all select 'C','c1','2','10'--顯示
    select * from table1
    select * from table2
    select * from table3--刪除
    drop table table1
    drop table table2
    drop table table3
    create view Va
    as 
    select a.*,b.工業占地面積,b.工業總產值,c.教育占地面積,c.教育總產值
    from table1 a
    left join table2 b on a.市=b.市 and a.縣=b.縣
    left join table3 c on a.市=c.市 and a.縣=c.縣
    goselect * from Va--結果
    市  縣  農業占地面積 農業總產值 工業占地面積 工業總產值 教育占地面積 教育總產值
    --------------------------------------------------------------------
    A a1 10 20 10 20 10 20
    B b3 3 20 1 10 1 25
    B b1 7 25 5 20 1 20
    C c1 12 30 10 45 2 10
      

  7.   

    嘿嘿,我把后面几个面积和产值的isnull取消了,不然真不好计算count().
      

  8.   

    select 市=isnull(a.市,isnull(b.市,c.市)),
           县=isnull(a.县,isnull(b.县,c.县)),
           农业占地面积=isnull(a.农业占地面积,0),
           农业总产值=isnull(a.农业总产值,0),
           工业占地面积=isnull(b.工业占地面积,0),
           工业总产值=isnull(b.工业总产值,0),
           教育占地面积=isnull(c.教育占地面积,0),
           教育总产值=isnull(c.教育总产值,0)
    from table1 a
     join table2 b on a.市=b.市 and a.县=b.县
     join table3 c on a.市=c.市 and a.县=c.县