zoukankan      html  css  js  c++  java
  • 请编写sql多语句表值函数统,计指定年份中每本书的销售总额

    create table 图书表(  书号 varchar(50),  书名 varchar(50),  单价 int )
    
    create table 销售表(  书号 varchar(50),  销售时间 datetime,  销售数量 int )
    
    alter table 图书表 alter column 书号 varchar(50) not null;
    
    alter table 图书表 add constraint pk_tushubiao_shuhao primary key (书号) ;
    
    alter table 销售表 add constraint fk_xiaoshoubiao_shuhao foreign key (书号) references 图书表(书号);
    
    
    insert into 图书表 values('b001', '平凡的世界', 50);
    insert into 图书表 values('b002', '血色浪漫', 60);
    insert into 图书表 values('b003', '蓝色生死恋', 30);
    
    insert into 销售表 values('b001', '2012/03/15', 10);
    insert into 销售表 values('b001', '2012/03/16 2:30:15', 10);
    insert into 销售表 values('b001', '2013/08/16 22:10:37', 10);
    insert into 销售表 values('b002', '2013/03/25 22:10:37', 10);
    insert into 销售表 values('b002', '2013/01/16 22:10:37', 13);
    insert into 销售表 values('b002', '2012/08/16 10:20:55', 28);
    insert into 销售表 values('b003', '2012/07/15 20:56:27', 33);
    insert into 销售表 values('b003', '2012/12/6 21:33:59', 66);
    
    select a.书名, 单价, 销售数量, 销售时间 from 图书表 a, 销售表 b where a.书号=b.书号 and YEAR(销售时间) = '2012';
    select a.书名, sum(单价*销售数量) as 销售总额 from 图书表 a, 销售表 b where a.书号=b.书号 and YEAR(销售时间) = '2012' group by a.书名;
    
    create procedure sp_BookProfit
    @year integer
    as
    begin
        select a.书名, sum(单价*销售数量) as 销售总额 from 图书表 a, 销售表 b where a.书号=b.书号 and YEAR(销售时间) = @year group by a.书名;
    end
    
    exec sp_BookProfit 2012;
    create function f_BookProfit (@year integer)
    returns @f_BookProfit table(书名 varchar(80), 销售总额 integer)
    as
    begin
        insert into @f_BookProfit select a.书名, sum(单价*销售数量) as 销售总额 from 图书表 a, 销售表 b where a.书号=b.书号 and YEAR(销售时间) = @year group by a.书名;
        return;
    end
    
    select * from dbo.f_BookProfit(2012);
  • 相关阅读:
    树链剖分(转载)
    随机数生成器
    错排公式的理解与推导(转载)
    容斥原理(转载)
    Luogu 3758 [TJOI2017]可乐(有向图邻接矩阵幂的意义 矩阵快速幂)
    vue input复选框checkbox默认样式纯css修改
    vue 页面切换的时候vuex记录之前的滚动条位置
    vue从入门到进阶
    es6 学习笔记
    vue 项目笔记
  • 原文地址:https://www.cnblogs.com/sinodragon21/p/4354410.html
Copyright © 2011-2022 走看看