1.创建视图
有两个表(苹果表和梨子表):苹果表:
NO     FDM(分店名)           PGSL(苹果数量)
1      分店1                     100
2      分店2                     100
3      分店3                     100梨子表:
NO     FDM(分店名)           LZSL(梨子数量)
1      分店2                     100
2      分店3                     100
3      分店4                     100
我现在想得到这样的视图:
水果总数视图:
NO     FDM(分店名)     PGSL(苹果数量)       LZSL(梨子数量)    合计数量
1      分店1              100                  0                 100
2      分店2              100                 100                200
3      分店3              100                 100                200
4      分店4               0                  100                100
--测试
--测试数据
create table apple(NO int,FDM varchar(10),PGSL int)
insert apple select 1,'分店1',100
union  all    select 2,'分店2',100
union  all    select 3,'分店3',100create table pear(NO int,FDM varchar(10),LZSL int)
insert pear select 1,'分店2',100
union  all    select 2,'分店3',100
union  all    select 3,'分店4',100
go2、已知学生成绩表:
姓名  数学 英语  语文
张三  50    80    70
李四  80    68    82 
黄六  85    78    90需要得出结果集:
姓名    最大分数         最小分数        平均分数         
张三    80.00(英语)       50.00(英语)     66.67
李四    82.00(语文)       68.00(英语)     76.67
黄六    90.00(语文)       78.00(语文)     84.33
脚本:create table ss(sname char(10),c1 numeric(10,2),c2 numeric(10,2),c3 numeric(10,2))
insert into ss values('张三',50,80,70)
insert into ss values('李四',80,68,82)
insert into ss values('黄六',85,78,90)(以下选做)
3、表如下:
分数  班级  姓名
60    1班   张三
40    1班   李四
60    1班   王五
50    2班   刘一
20    2班   吴涛
43    2班   将二
30    3班   李力
79    3班   小煤
80    3班   刘涛想写一个sql语句查询结果如下:
分数  班级  姓名   所在班级总分
60    1班   张三   
40    1班   李四   160
60    1班   王五   
50    2班   刘一   
20    2班   吴涛   113
43    2班   将二   
30    3班   李力   
79    3班   小煤   189
80    3班   刘涛   
也就是说想在查询后多一列“所在班级总分”,而且只能在每组的一条记录中显示出来,该怎么写呀?(提示:isnull()函数,left join)
--测试数据
create table 表(分数 int,班级 varchar(10),姓名 varchar(10))
insert 表 select 60,'1班','张三'
union all select 40,'1班','李四'
union all select 60,'1班','王五'
union all select 50,'2班','刘一'
union all select 20,'2班','吴涛'
union all select 43,'2班','将二'
union all select 30,'3班','李力'
union all select 79,'3班','小煤'
union all select 80,'3班','刘涛'
go

解决方案 »

  1.   


    create view my_view
    asselect
    t.FDM,
    isnull(a.PGSL,0) PGSL,
    isnull(b.LZSL,0) LZSL,
    (isnull(a.PGSL,0) + isnull(b.LZSL,0)) as hj
    from 
    (
    select distinct FDM from  apple
    union 
    select distinct FDM from  pear
    ) t
    left join apple a on a.FDM= t.FDM
    left join pear b on b.FDM= t.FDM
    goselect * from my_view
    结果:
    分店1 100 0 100
    分店2 100 100 200
    分店3 100 100 200
    分店4 0 100 100