zoukankan      html  css  js  c++  java
  • SQL每个月份的发生额都比101科目多的科目

    请用SQL语句实现:从TestDB数据表中查询出所有月份的发生额都比101科目相应月份的发生额高的科目。请注意:TestDB中有很多科目,都有1-12月份的发生额。
                      AccID:科目代码,Occmonth:发生额月份,DebitOccur:发生额。
                      数据库名:JcyAudit,数据集:Select * from TestDB
                      准备数据的sql代码:

     drop table if exists TestDB;
                      create table TestDB(id int primary key auto_increment,AccID 
                      varchar(20), Occmonth date, DebitOccur bigint);
                      insert into TestDB values 
                      (null,'101','1988-1-1',100),
                      (null,'101','1988-2-1',110),
                      (null,'101','1988-3-1',120),
                      (null,'101','1988-4-1',100),
                      (null,'101','1988-5-1',100),
                      (null,'101','1988-6-1',100),
                      (null,'101','1988-7-1',100),
                      (null,'101','1988-8-1',100);
                      --复制上面的数据,故意把第一个月份的发生额数字改小一点
                      insert into TestDB values 
                      (null,'102','1988-1-1',90),
                      (null,'102','1988-2-1',110),
                      (null,'102','1988-3-1',120),
                      (null,'102','1988-4-1',100),
                      (null,'102','1988-5-1',100),
                      (null,'102','1988-6-1',100),
                      (null,'102','1988-7-1',100),
                      (null,'102','1988-8-1',100);
                      --复制最上面的数据,故意把所有发生额数字改大一点
                      insert into TestDB values 
                      (null,'103','1988-1-1',150),
                      (null,'103','1988-2-1',160),
                      (null,'103','1988-3-1',180),
                      (null,'103','1988-4-1',120),
                      (null,'103','1988-5-1',120),
                      (null,'103','1988-6-1',120),
                      (null,'103','1988-7-1',120),
                      (null,'103','1988-8-1',120);
                      --复制最上面的数据,故意把所有发生额数字改大一点
                      insert into TestDB values 
                      (null,'104','1988-1-1',130),
                      (null,'104','1988-2-1',130),
                      (null,'104','1988-3-1',140),
                      (null,'104','1988-4-1',150),
                      (null,'104','1988-5-1',160),
                      (null,'104','1988-6-1',170),
                      (null,'104','1988-7-1',180),
                      (null,'104','1988-8-1',140);
                      --复制最上面的数据,故意把第二个月份的发生额数字改小一点
                      insert into TestDB values 
                      (null,'105','1988-1-1',100),
                      (null,'105','1988-2-1',80),
                      (null,'105','1988-3-1',120),
                      (null,'105','1988-4-1',100),
                      (null,'105','1988-5-1',100),
                      (null,'105','1988-6-1',100),
                      (null,'105','1988-7-1',100),
                      (null,'105','1988-8-1',100);
                   

    答案:

    select distinct AccID from TestDB 
                      where AccID not in 
                      (select TestDB.AccIDfrom TestDB,
                      (select * from TestDB where AccID='101') as db101 
                      where TestDB.Occmonth=db101.Occmonth and 
                      TestDB.DebitOccur<=db101.DebitOccur
                      );


                     
            

  • 相关阅读:
    uniapp 的组件 定义了 直接使用即可 。
    uniapp 关闭微信小程序的索引警告
    微信小程序 组件化开发 实现 导航分类文章 小程序
    微信小程序 向下滚动加载更多 和 上滑刷新的写法
    微信小程序 用 Pormise 封装 wx.request 请求
    ES6 再次学习 Promise语法(代码图解)
    Maven依赖排除及版本统一
    Maven依赖使用的范围
    SSM整合时的配置文件
    SSM整合时用到的maven依赖
  • 原文地址:https://www.cnblogs.com/zhaideyou/p/5932394.html
Copyright © 2011-2022 走看看