`

SQL,唯一筛选问题,牛人请帮忙

SQL 
阅读更多
原始数据

 
  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语言中经典语句的总结,涵盖了多种数据库操作命令,下面将详细解释这些知识点。 ### SQL基础操作 #### 数据查询(SELECT) - **功能**: 查询数据库中的数据。 ...

    asp利用sql进行筛选导出excel

    本示例提供了一种高效的方法,通过SQL查询直接筛选出所需的数据,并直接导出到Excel,而无需在服务器上创建Excel对象。这种方法的优点在于减少了出错的可能性,因为创建和操作Excel对象可能会遇到各种兼容性或资源...

    SQL中数据的筛选组件

    SELECT 指令让我们能够读取表格中一个或数个栏位的所有资料。 这将把所有的资料都抓出,无论资料值有无重复。在资料处理中,我们会...在 SQL 中,这是很容易做到的。我们只要在 SELECT 后加上一个 DISTINCT 就可以了。

    SQL server高并发下生成唯一订单号的存储过程

    这个是用SQL server写的存储过程,搭配里面一张数据表使用,达到高并发情况下获得唯一订单号的目的;原理:按照一定规则生成订单号后,把订单号插入数据表后,再返回给用户,由于数据表设置了主键,也就是当数据表中...

    SQL 语法 SQL 总结 SQL教程

    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 server 导入超大SQL脚本文件

    然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL 脚本文件。 什么是 osql? osql 是 SQL Server 提供的一个命令行工具,用于执行 SQL 语句和运行 ...

    SQL SERVER 字符串 增长 生成唯一字符串 函数

    主要用于在数据库设计时需要自己生成定长的字符串作为关键字。这一个用户字符串每次递增而形成新串的数据库函数方法。

    JSON里进行信息筛选工具-jsonsql

    很多人都遇到过 在 json 里面多个字段进行筛选得问题吧。 jsonsql可以像sql一样进行字段筛选

    sqlserver自动生成sql语句工具sqlserver转oracle

    在IT行业中,数据库管理系统是核心组成部分,SQL Server和Oracle分别是微软和甲骨文公司推出的两款广泛应用的关系型数据库系统。在企业级应用中,有时需要在不同的数据库系统间进行数据迁移或兼容性处理,这就涉及到...

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示

    SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性--这在开发者使用的是不大熟悉的脚本时尤其有用。SQL ...

    arcgis中的sql语句

    ### ArcGIS中的SQL语句详解 #### 一、SQL在ArcGIS中的角色与应用 SQL,全称为Structured Query Language,即结构化查询语言,是专为数据库设计的一种标准语言,用于管理和操作数据库中的数据。在ArcGIS环境中,SQL...

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

    本书适合专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。...

    Oracle Sql语句转换成Mysql Sql语句

    在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...

    SQLMonitor oracle跟踪SQL工具

    在系统运行过程中,当遇到性能问题时,SQLMonitor能迅速定位问题SQL,为优化提供方向;在持续集成和持续部署(CI/CD)流程中,SQLMonitor可以作为质量控制的一部分,确保数据库操作的正确性和效率。 总的来说,SQL...

    java+servlet+mysql实现条件筛选(详情见文件sql脚本)

    这里的"Querrymore"可能是表示查询更多或者更复杂查询的文件名,可能包含了具体的SQL脚本,用于处理不同类型的筛选条件。在实际开发中,这些SQL语句可能会通过预编译的PreparedStatement来执行,以防止SQL注入攻击。...

    Sql经典练习题库(附答案)

    ### SQL经典练习题库知识点解析 #### 一、SQL简介及其重要性 SQL(Structured Query Language,结构化查询语言)是一种非过程化的编程语言,它主要用于...这些练习有助于加深对SQL的理解,并提高解决实际问题的能力。

    kettle链接SQL server驱动 sqljdbc

    在Kettle中配置SQL Server数据库连接时,我们需要依赖特定的数据库驱动,这就是SQL JDBC驱动。 SQL JDBC驱动是微软提供的Java Database Connectivity (JDBC) 驱动,使得Java应用程序能够与SQL Server进行交互。有两...

    SQL Server 到 Oracle 的SQL 语法自动翻译器源码

    转换源码在SqlConvertToOracle.pas中, ... 如果有人用得着或发现什么问题,请加我的QQ:229481711,同时请支持一下本人的报表控件作品(Ac Report): http://download.csdn.net/detail/shaoyy/3674310

    解决SQLSERVER数据库驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接问题JAR包

    在SQLSERVER数据库的使用过程中,有时会出现一个棘手的问题,即驱动程序无法通过安全套接字层(SSL)加密与SQL Server建立安全连接。这个问题通常表明数据库连接在尝试使用SSL进行加密时遇到了障碍,可能影响数据的...

    SQL.Cookbook(中文高清PDF)

    解决日常编程问题的解决方案的数量仅取决于需要解决的问题的数量,《SQL Cookbook中文版》没有覆盖所有问题,事实上也不可能覆盖;然而从中可以找到许多共同的问题及其解决方案,这些解决方案中用到许多技巧,读者学...

Global site tag (gtag.js) - Google Analytics