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,'','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科目多的科目的更多相关文章
- 用一条SQL语句查出每门课都大于80分的学生的姓名
用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下: 建表SQL如下: ; -- ---------------------------- -- Table structure for ...
- Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定
1.错误描述 Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定 2.错误原因 3.解决办法
- sql 语句 查询两个字段都相同的方法
这是替代方法 先使用着 select * from ofgroup where groupId in (select groupId from ofgroup where uid ='". ...
- SQL查询出每门课都大于80 分的学生姓名
Course表如下: 查询出每门课都大于80 分的学生姓名有两种方法. 1.select distinct name from Course where name not in (select di ...
- 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, ...
- sql对每一条记录都给他一个随机的数。
update [WonyenMall].[dbo].[T_Real_Commodity] set increment=FLOOR(RAND(ABS(CHECKSUM(NEWID()))) * 100) ...
- 案例2:用一条SQL查询出数学语文成绩都大于80分的学生姓名?
方法1: 查出科目成绩有小于80分的学生姓名,再约束并去重学生不等于查出来的姓名 select distinct A.name from t_score A where A.name not in(s ...
- SQL Server 启动时发生错误1069:由于登录失败而无法启动
解决方法: (1). 我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户". (2). 我的电脑- ...
- sql 触发器里,发生错误,回滚提示错误语句
SET @msg='错误消息'; RAISERROR(@msg, 16, 1); ROLLBACK TRANSACTION; ...
随机推荐
- [Oracle] Listener的动态注册
在有Oracle Listener的动态注册之前,采用的是静态注册,所谓静态注册是指Oracle实例在启动时,读取listener.ora里的配置,然后注册到Listener,它主要有两个缺点: 1. ...
- java 集合类说明与区别
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...
- 网易云课堂_C语言程序设计进阶_第5周:链表_1逆序输出的数列
1 逆序输出的数列(10分) 题目内容: 你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束.然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1. 输 ...
- QDialog弹出一个窗口,改变窗口大小
创建一个QT应用 文件->新建文件或项目 Application->Qt Widgets Application 其他下一步 基类选择QDialog 其他下一步 resize() 改变窗口 ...
- FilenameUtils工具类
转载请出自出处:http://eksliang.iteye.com/blog/2217081 一.概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的 ...
- Html5 自定义数据属性
html5 可以为元素添加自定义属性,但是要添加前缀data-.(下面这个例子中的自定义属性的命名,其实是不规范的,不应该包含大写字符,例如:data-myName 应改命名为:data-myname ...
- js生成验证码并且判断
<style type="text/css"> .code { font-family: Arial; ...
- 使用XCODE 的SOURCE CONTROL 做版本控制 (1)
http://it.zhaozhao.info/archives/60469 这是一篇关于 开发者在修改代码中非常常用的一个功能: 应用场景: 当你将代码该的面目全非,还不如从其那,这时候又想回到 ...
- 向上取整Ceil,向下取整Floor,四舍五入Round
几个数值函数的功能实现: (1)int Ceil(float f) int Ceil(float f) { int integer = (int)f; if (f > (float)intege ...
- WinSock网络编程基础(1)
记录学习windows网络编程过程中遇到的问题和相关笔记 基本概念: Socket: socket起源于UNIX,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.基于&qu ...