原始数据
TERMINAL_ID MAXDATE TERMINAL_ID OCCUR_DATE_TIME TROUBLE_CD
1 12345 20100401102754 12345 20100401102754 210
2 12345 20100401102754 12345 20100401102754 211
3 12345 20100401102754 12345 20100401102754 ?09
4 12346 20100401102770 12346 20100401102770 ?43J
5 12347 20100401102780 12347 20100401102780 ?42a
6 12348 20100401102790 12348 20100401102790 ?43J
7 12349 20100401102800 12349 20100401102800 209
8 12350 20100401102820 12350 20100401102820 ?117
9 12351 20100401102830 12351 20100401102830 211
10 12352 20100401102840 12352 20100401102840 ?42a
11 12353 20100401102850 12353 20100401102850 ?43J
想要的数据
TERMINAL_ID MAXDATE TERMINAL_ID OCCUR_DATE_TIME TROUBLE_CD
1 12345 20100401102754 12345 20100401102754 210
2 12346 20100401102770 12346 20100401102770 ?43J
3 12347 20100401102780 12347 20100401102780 ?42a
4 12348 20100401102790 12348 20100401102790 ?43J
5 12349 20100401102800 12349 20100401102800 209
6 12350 20100401102820 12350 20100401102820 ?117
7 12351 20100401102830 12351 20100401102830 211
8 12352 20100401102840 12352 20100401102840 ?42a
9 12353 20100401102850 12353 20100401102850 ?43J
问题是:
现在的需求是 一个terminal_id 对应一个时间, 可当时间相等时,怎么人已筛选出一条信息。
就是,上面数据里面 terminal_id 位 12345的有3条数据,怎么筛选出一条
我的SQL
SELECT DISTINCT F2.OCCUR_DATE_TIME, F1.TERMINAL_ID, F2.TROUBLE_CD
FROM
(
SELECT T1.TERMINAL_ID, MAX(T1.OCCUR_DATE_TIME) MaxDate FROM MON.ATMTROTBL T1
WHERE
1 = 1
AND T1.terminal_id Like '12%'
AND T1.occur_date_time <= '20101011010101'
AND T1.trouble_cd <> '?00' AND T1.trouble_cd <> '?100'
AND T1.trouble_cd <> '?30' AND T1.trouble_cd <> '?31'
AND T1.trouble_cd <> '?35' AND T1.trouble_cd <> '@01'
AND T1.trouble_cd <> '@02' AND T1.trouble_cd <> '@03'
AND T1.trouble_cd <> '@04' AND T1.trouble_cd <> '@05'
AND T1.trouble_cd <> '@08' AND T1.trouble_cd <> '201'
AND T1.trouble_cd <> '202' AND T1.trouble_cd <> '203'
AND T1.trouble_cd <> '204' AND T1.trouble_cd <> '205'
AND T1.trouble_cd <> '207' AND T1.trouble_cd <> '208'
AND T1.trouble_cd <> '217' AND T1.trouble_cd <> '218'
AND T1.trouble_cd <> '219' AND T1.trouble_cd <> '220'
AND T1.trouble_cd <> '221' AND T1.trouble_cd <> '222'
AND T1.trouble_cd <> '223' AND T1.trouble_cd <> '224'
AND T1.trouble_cd <> '=01' AND T1.trouble_cd <> '=05'
AND T1.trouble_cd <> '=06' AND T1.trouble_cd <> '=07'
AND T1.trouble_cd <> '=08' AND T1.trouble_cd <> '=12'
AND T1.trouble_cd <> '=16' AND T1.trouble_cd <> '>01'
AND T1.trouble_cd <> '>02' AND T1.trouble_cd <> '>03'
AND T1.trouble_cd <> '>06' AND T1.trouble_cd <> '>07'
AND T1.trouble_cd <> '>08' AND T1.trouble_cd <> '>09'
AND T1.trouble_cd <> '>10' AND T1.trouble_cd <> '>11'
AND T1.trouble_cd <> '>12' AND T1.trouble_cd <> '>16'
AND T1.trouble_cd <> '?4A' AND T1.trouble_cd <> '?4B'
AND T1.trouble_cd <> '?4C' AND T1.trouble_cd <> '?4D'
AND T1.trouble_cd <> '?4E' AND T1.trouble_cd <> '?4F'
AND T1.trouble_cd <> '?4G' AND T1.trouble_cd <> '?4H'
GROUP BY TERMINAL_ID
) F1
Left JOIN
(
SELECT
T1.terminal_id,
T1.occur_date_time,
T1.trouble_cd
FROM
MON.ATMTROTBL T1
ORDER BY
T1.terminal_id ASC, T1.occur_date_time DESC
) F2
ON
F1.TERMINAL_ID = F2.TERMINAL_ID
AND F1. MaxDate = F2.OCCUR_DATE_TIME
分享到:
相关推荐
根据给定的信息,“牛人总结的SQL语句”是一篇关于SQL语言中经典语句的总结,涵盖了多种数据库操作命令,下面将详细解释这些知识点。 ### SQL基础操作 #### 数据查询(SELECT) - **功能**: 查询数据库中的数据。 ...
本示例提供了一种高效的方法,通过SQL查询直接筛选出所需的数据,并直接导出到Excel,而无需在服务器上创建Excel对象。这种方法的优点在于减少了出错的可能性,因为创建和操作Excel对象可能会遇到各种兼容性或资源...
SELECT 指令让我们能够读取表格中一个或数个栏位的所有资料。 这将把所有的资料都抓出,无论资料值有无重复。在资料处理中,我们会...在 SQL 中,这是很容易做到的。我们只要在 SELECT 后加上一个 DISTINCT 就可以了。
这个是用SQL server写的存储过程,搭配里面一张数据表使用,达到高并发情况下获得唯一订单号的目的;原理:按照一定规则生成订单号后,把订单号插入数据表后,再返回给用户,由于数据表设置了主键,也就是当数据表中...
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL 脚本文件。 什么是 osql? osql 是 SQL Server 提供的一个命令行工具,用于执行 SQL 语句和运行 ...
主要用于在数据库设计时需要自己生成定长的字符串作为关键字。这一个用户字符串每次递增而形成新串的数据库函数方法。
很多人都遇到过 在 json 里面多个字段进行筛选得问题吧。 jsonsql可以像sql一样进行字段筛选
在IT行业中,数据库管理系统是核心组成部分,SQL Server和Oracle分别是微软和甲骨文公司推出的两款广泛应用的关系型数据库系统。在企业级应用中,有时需要在不同的数据库系统间进行数据迁移或兼容性处理,这就涉及到...
SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性--这在开发者使用的是不大熟悉的脚本时尤其有用。SQL ...
### ArcGIS中的SQL语句详解 #### 一、SQL在ArcGIS中的角色与应用 SQL,全称为Structured Query Language,即结构化查询语言,是专为数据库设计的一种标准语言,用于管理和操作数据库中的数据。在ArcGIS环境中,SQL...
本书适合专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。...
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
在系统运行过程中,当遇到性能问题时,SQLMonitor能迅速定位问题SQL,为优化提供方向;在持续集成和持续部署(CI/CD)流程中,SQLMonitor可以作为质量控制的一部分,确保数据库操作的正确性和效率。 总的来说,SQL...
这里的"Querrymore"可能是表示查询更多或者更复杂查询的文件名,可能包含了具体的SQL脚本,用于处理不同类型的筛选条件。在实际开发中,这些SQL语句可能会通过预编译的PreparedStatement来执行,以防止SQL注入攻击。...
### SQL经典练习题库知识点解析 #### 一、SQL简介及其重要性 SQL(Structured Query Language,结构化查询语言)是一种非过程化的编程语言,它主要用于...这些练习有助于加深对SQL的理解,并提高解决实际问题的能力。
在Kettle中配置SQL Server数据库连接时,我们需要依赖特定的数据库驱动,这就是SQL JDBC驱动。 SQL JDBC驱动是微软提供的Java Database Connectivity (JDBC) 驱动,使得Java应用程序能够与SQL Server进行交互。有两...
转换源码在SqlConvertToOracle.pas中, ... 如果有人用得着或发现什么问题,请加我的QQ:229481711,同时请支持一下本人的报表控件作品(Ac Report): http://download.csdn.net/detail/shaoyy/3674310
在SQLSERVER数据库的使用过程中,有时会出现一个棘手的问题,即驱动程序无法通过安全套接字层(SSL)加密与SQL Server建立安全连接。这个问题通常表明数据库连接在尝试使用SSL进行加密时遇到了障碍,可能影响数据的...
解决日常编程问题的解决方案的数量仅取决于需要解决的问题的数量,《SQL Cookbook中文版》没有覆盖所有问题,事实上也不可能覆盖;然而从中可以找到许多共同的问题及其解决方案,这些解决方案中用到许多技巧,读者学...