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);
  • 相关阅读:
    怎样看文献
    How to save rules of the iptables?
    Keras 自适应Learning Rate (LearningRateScheduler)
    在主线程中慎用WaitForSingleObject (WaitForMultipleObjects)
    QT5.9 新特性与版本回顾
    [常见问题]解决创建servlet 找不到webservlet包.
    MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
    MyBatis学习总结(七)——Mybatis缓存
    MyBatis学习总结(六)——调用存储过程
    MyBatis学习总结(五)——实现关联表查询
  • 原文地址:https://www.cnblogs.com/sinodragon21/p/4354410.html
Copyright © 2011-2022 走看看