请用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. [Oracle] Listener的动态注册

    在有Oracle Listener的动态注册之前,采用的是静态注册,所谓静态注册是指Oracle实例在启动时,读取listener.ora里的配置,然后注册到Listener,它主要有两个缺点: 1. ...

  2. java 集合类说明与区别

    集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...

  3. 网易云课堂_C语言程序设计进阶_第5周:链表_1逆序输出的数列

    1 逆序输出的数列(10分) 题目内容: 你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束.然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1. 输 ...

  4. QDialog弹出一个窗口,改变窗口大小

    创建一个QT应用 文件->新建文件或项目 Application->Qt Widgets Application 其他下一步 基类选择QDialog 其他下一步 resize() 改变窗口 ...

  5. FilenameUtils工具类

    转载请出自出处:http://eksliang.iteye.com/blog/2217081 一.概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的 ...

  6. Html5 自定义数据属性

    html5 可以为元素添加自定义属性,但是要添加前缀data-.(下面这个例子中的自定义属性的命名,其实是不规范的,不应该包含大写字符,例如:data-myName 应改命名为:data-myname ...

  7. js生成验证码并且判断

       <style type="text/css">        .code        {            font-family: Arial;      ...

  8. 使用XCODE 的SOURCE CONTROL 做版本控制 (1)

    http://it.zhaozhao.info/archives/60469   这是一篇关于 开发者在修改代码中非常常用的一个功能: 应用场景: 当你将代码该的面目全非,还不如从其那,这时候又想回到 ...

  9. 向上取整Ceil,向下取整Floor,四舍五入Round

    几个数值函数的功能实现: (1)int Ceil(float f) int Ceil(float f) { int integer = (int)f; if (f > (float)intege ...

  10. WinSock网络编程基础(1)

    记录学习windows网络编程过程中遇到的问题和相关笔记 基本概念: Socket: socket起源于UNIX,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.基于&qu ...