请用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,'','1988-1-1',100),
(null,'','1988-2-1',110),
(null,'','1988-3-1',120),
(null,'','1988-4-1',100),
(null,'','1988-5-1',100),
(null,'','1988-6-1',100),
(null,'','1988-7-1',100),
(null,'','1988-8-1',100);
--复制上面的数据,故意把第一个月份的发生额数字改小一点
insert into TestDB values
(null,'','1988-1-1',90),
(null,'','1988-2-1',110),
(null,'','1988-3-1',120),
(null,'','1988-4-1',100),
(null,'','1988-5-1',100),
(null,'','1988-6-1',100),
(null,'','1988-7-1',100),
(null,'','1988-8-1',100);
--复制最上面的数据,故意把所有发生额数字改大一点
insert into TestDB values
(null,'','1988-1-1',150),
(null,'','1988-2-1',160),
(null,'','1988-3-1',180),
(null,'','1988-4-1',120),
(null,'','1988-5-1',120),
(null,'','1988-6-1',120),
(null,'','1988-7-1',120),
(null,'','1988-8-1',120);
--复制最上面的数据,故意把所有发生额数字改大一点
insert into TestDB values
(null,'','1988-1-1',130),
(null,'','1988-2-1',130),
(null,'','1988-3-1',140),
(null,'','1988-4-1',150),
(null,'','1988-5-1',160),
(null,'','1988-6-1',170),
(null,'','1988-7-1',180),
(null,'','1988-8-1',140);
--复制最上面的数据,故意把第二个月份的发生额数字改小一点
insert into TestDB values
(null,'','1988-1-1',100),
(null,'','1988-2-1',80),
(null,'','1988-3-1',120),
(null,'','1988-4-1',100),
(null,'','1988-5-1',100),
(null,'','1988-6-1',100),
(null,'','1988-7-1',100),
(null,'','1988-8-1',100);

答案:

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

SQL每个月份的发生额都比101科目多的科目的更多相关文章

  1. 用一条SQL语句查出每门课都大于80分的学生的姓名

    用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下: 建表SQL如下: ; -- ---------------------------- -- Table structure for ...

  2. Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定

    1.错误描述 Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定 2.错误原因 3.解决办法

  3. sql 语句 查询两个字段都相同的方法

    这是替代方法 先使用着 select * from ofgroup where groupId in (select groupId from ofgroup where  uid ='". ...

  4. SQL查询出每门课都大于80 分的学生姓名

    Course表如下: 查询出每门课都大于80 分的学生姓名有两种方法. 1.select  distinct name from Course where name not in (select di ...

  5. Oracle EBS-SQL (AR-1):检查应收收款发生额

    SELECT SUM(nvl(dist.amount_dr,0))-SUM(nvl(dist.amount_cr,0)) FROM ar_cash_receipt_history_all hist,  ...

  6. sql对每一条记录都给他一个随机的数。

    update [WonyenMall].[dbo].[T_Real_Commodity] set increment=FLOOR(RAND(ABS(CHECKSUM(NEWID()))) * 100) ...

  7. 案例2:用一条SQL查询出数学语文成绩都大于80分的学生姓名?

    方法1: 查出科目成绩有小于80分的学生姓名,再约束并去重学生不等于查出来的姓名 select distinct A.name from t_score A where A.name not in(s ...

  8. SQL Server 启动时发生错误1069:由于登录失败而无法启动

    解决方法:    (1). 我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户".    (2). 我的电脑- ...

  9. sql 触发器里,发生错误,回滚提示错误语句

    SET @msg='错误消息';                RAISERROR(@msg, 16, 1);                ROLLBACK TRANSACTION;         ...

随机推荐

  1. 如何在程序中动态设置墙纸(使用IActiveDesktop接口)

    大家都知道设置WINDOWS桌面墙纸的WIN32 API是SystemParametersInfo, 使用SPI_SETDESKWALLPAPER参数便能设置墙纸: ::SystemParameter ...

  2. Genymotion中SD卡目录在Eclipse中查看,以及创建SDCard

    咦?这后面似乎指向一个目录,我就去找/mnt/shell/emulated/0 Wow~好熟悉的目录..不熟悉的同学可以打开android模拟器的File Manger App 里面就是这些目录了,然 ...

  3. Spring Boot的启动器Starter详解

    Spring Boot的启动器Starter详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Spring Boot ...

  4. [原]基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息

    从cas server登录成功后,默认只能从casclient得到用户名.但程序中也可能遇到需要得到更多如姓名,手机号,email等更多用户信息的情况. cas client拿到用户名后再到数据库中查 ...

  5. 嵌入式davinci电路元素基础和PWM模块

    1,DAC_OUT和DAC_OUTB是AD9912输出的差分信号. 2,电容器储存电荷的能力,常用的单位是F.uF.nF.pFUF大了好还是UF小了好,要根据电路自身需要而设计, 要看电路滤波是在高频 ...

  6. ceph伦理概念

    Preface: CEPH: THE FUTURE OF STORAGE(未来存储) Ceph was made possible by a global community of passionat ...

  7. select option 下拉多选单选bootstrap插件使用总结2

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. SQL语句一些特殊的用法

    SQL语句一些特殊的用法 一.基础 1.说明:创建数据库 CREATE DATABASE database-name  2.说明:删除数据库 drop database dbname 3.说明:备份s ...

  9. 【转】SQL Server 2008 新类型介绍之Date和Time

     转自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/13/4344429.aspx   SQL Server 2008除了 ...

  10. SGU 310. Hippopotamus( 状压dp )

    题目大意:给N块板, 有A,B2种类型的板, 要求任意M块连续的板中至少有K块B板.1≤n≤60,1≤m≤15,0≤k≤m≤n. dp(x, s)表示第x块板, x前M块板的状态为s, 然后合法状态转 ...