- 浏览: 117671 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (83)
- 问题解决 (4)
- Oracle (21)
- css (1)
- jsp页面 EL表达式 (0)
- JSP (6)
- 网络必备知识 (1)
- Tomcat (3)
- html (10)
- JDK (1)
- Myeclipse (4)
- 术语 (1)
- ibatis (2)
- struts2 (1)
- /i (1)
- /g (1)
- /ig (1)
- /gi (1)
- /m的区别和含义 (1)
- Oracle 数据字段 (1)
- 行链接(Row chaining) 与行迁移(Row Migration) (1)
- oracle中substr函数的用法 (1)
- 各个数据库的端口 (1)
- OracleOraDB10g_home1TNSListener 无法启动 错误1067 (1)
- oracle服务说明 (0)
- [解决]ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 (0)
- ORA-28000: The Account is locked. 问题的解决 (0)
- pl/sql (1)
- JS (3)
- jqgrid (0)
- Jquery (3)
- 常识 (1)
- powerdesigner (4)
- javascript (6)
- java (3)
- 问题 (1)
- xml (1)
- sql (1)
- Myeclipse\ (1)
最新评论
想要得到的结果,得到车牌号所对应 最大日期卡的状态,且卡的状态必须是 在 1,2,3中
原始数据
select t.vechile_code,t.card_code,c.state,t.status,t.craete_date from t_veh_carduse t ,t_acc_card c where t.card_code=c.card_code
1 a1 130002 4 2 2012-11-5 10:05:54
2 a1 130001 4 2 2012-11-5 10:04:52
3 a1 130001 4 2 2012-11-5 10:06:24
4 a1 130001 4 2 2012-11-5 10:06:45
5 a1 130003 1 1 2012-11-5 10:07:12
1 查询语句
select t.state
from T_Veh_Carduse c, t_acc_card t
where c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.card_code = c.card_code
group by card.card_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
2 查询语句
select t.state
from T_Veh_Carduse c, t_acc_card t
where c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.vechile_code = c. vechile_code
group by card.card_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
错误 :单行子查询返回多个行
一个车牌号 对应了很多卡号记录
3 查询语句
select t.state
from T_Veh_Carduse c, t_acc_card t
where c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.card_code = c. card_code
group by card.vechile_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
结果:
1 4
2 4
3 1
此种结果也是错误的
4 select t.state
from T_Veh_Carduse c, t_acc_card t
where c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.vechile_code = c.vechile_code
group by card.vechile_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
结果 :4
这种结果也是错误
以下两种写法是对的
select t.state
from T_Veh_Carduse c, t_acc_card t
where c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.card_code = c.card_code and t.state in(1,2,3)
group by card.card_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
结果 1
select t.state
from T_Veh_Carduse c, t_acc_card t
where c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.card_code = c.card_code
group by card.card_code)
and c.craete_date = (select max(card.craete_date)
from T_Veh_Carduse card
where card.vechile_code = c.vechile_code
group by card.vechile_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
结果 1
数据源
1 a1 130002 4 2 2012-11-5 10:05:54
2 a1 130001 1 2 2012-11-5 10:04:52
3 a1 130001 1 2 2012-11-5 10:06:24
4 a1 130001 1 2 2012-11-5 10:06:45
5 a1 130003 1 1 2012-11-5 10:07:12
6 a2 130001 1 1 2012-11-5 10:44:31
1 查询结果为
4 130002
1 130003
2 结果一样
3 结果也是错误的
为什么:因为每个卡 对应 每个车 都有最大记录 所以返回多个值
数据
2 a1 130001 1 2 2012-11-5 10:04:52
6 a2 130001 1 1 2012-11-5 10:05:54
1 a1 130002 4 2 2012-11-5 10:05:54
3 a1 130001 1 2 2012-11-5 10:06:24
4 a1 130001 1 2 2012-11-5 10:06:45
5 a1 130003 1 1 2012-11-5 10:07:12
以下两种结果也是错误的
1
select t.state,t.card_code,c.vechile_code,c.craete_date
from T_Veh_Carduse c, t_acc_card t
where c.craete_date in (select max(card.craete_date)
from T_Veh_Carduse card
group by card.vechile_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
1 1 130003 a1 2012-11-5 10:07:12
2 4 130002 a1 2012-11-5 10:05:54
错误原因分析:
因为
6 a2 130001 1 1 2012-11-5 10:05:54
1 a1 130002 4 2 2012-11-5 10:05:54
最大时间一样 所以 a1除了有一个最大的时间 还有一个时间和a2匹配
2
select t.state,t.card_code,c.vechile_code,c.craete_date
from T_Veh_Carduse c, t_acc_card t
where c.craete_date in (select max(card.craete_date)
from T_Veh_Carduse card
group by card.card_code)
and c.vechile_code = 'a1'
and c.card_code = t.card_code
1 1 130001 a1 2012-11-5 10:06:45
2 4 130002 a1 2012-11-5 10:05:54
3 1 130003 a1 2012-11-5 10:07:12
这种结果错的更加离谱 会查处很多组结果
发表评论
-
Oracle中TO_DATE格式
2012-12-26 23:06 911Year: yy two digit ... -
oracle add_months函数的用法详解
2012-12-26 22:08 3121使用oracle add_months函数,就可以以得到 ... -
Oracle 分析
2012-12-26 21:42 738select count(*) from (sel ... -
Oracle日期格式
2012-12-26 21:39 811YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位、两 ... -
oracle中 Round 函数使用
2012-12-26 15:52 3670Round 函数 语法为ROUND(number,num_d ... -
start with 条件
2012-11-30 14:18 790select '' || ca.agency_id ... -
Oracle截取字符串和查找字符串
2012-11-28 22:17 939oracle 截取字符(substr),检索字符位置(i ... -
sql
2012-11-16 17:55 602select t.vechile_code,t.org_nam ... -
Oracle中的时间函数用法(to_date、to_char)
2012-10-23 10:46 289724小时的形式显示出来要用HH24 select to ... -
DECODE()函数 用法
2012-10-23 10:46 839decode(acc.state, ... -
数据库
2012-10-23 10:02 633(select c.vechile_code,c.cr ... -
sql的left join 命令详解
2012-09-03 14:02 759给个通俗的解释吧. 例表a aid adate ... -
oracle 如何导出所有用户名和密码
2012-08-03 22:07 1030下面这个sql可以生成建用户有脚本,在源库执行,把执行结 ... -
ORACLE递归查询
2012-07-24 15:47 786DEPTID NUMBER 部门idPAREDE ... -
DECODE()函数 用法
2012-07-20 17:39 826作用:将输入数值与函数中的参数列表相比较,根据输入值返回 ... -
详解Oracle的unlimited tablespace系统权限
2012-07-05 13:58 62801. 系统权限unlimited tablespace是 ... -
Sys和system用户的区别,as normal、sysdba 和sysoper系统权限区别
2012-07-05 13:59 3290Sys和system用户的区别,as normal、sy ... -
connect、resource和dba三种标准角色:
2012-07-05 13:59 1252connect、resource和dba三种标准角色: ... -
通过pl/sql创建Oracle新用户
2012-07-05 13:59 762引用创建用户和为用户分配权限 dba账号登录pl/sql d ... -
Oracle连接远程数据库
2012-03-29 10:07 919引用 配置连接远程数据库ORCL125 = (DESCRI ...
相关推荐
【标题】"易买网项目sql数据库版"指的是一个基于SQL数据库系统的电子商务平台,名为“易买网”。这个项目可能是由个人独立完成的,并且强调如果有相似的项目,那可能是抄袭或盗版。 【描述】"sql版易买网 个人手工...
"云E办项目SQL文件_sql文件"这个标题和描述表明我们正在处理与“云E办”项目相关的数据库脚本文件,具体来说是一个名为"yebSQL.sql"的SQL文件。这个文件很可能包含了创建、更新或维护云E办系统数据库结构和数据的SQL...
sqlController 用于控制小型项目SQL的开源代码 内附源代码 以及工具包 连接Oracle 解析 xml 获取SQL 通过服务器加载静态变量 将xml读取到流中 并解析 前端服务器 通过调用远程服务器 执行SQL 获取数据
微人事项目sql脚本新建vhr库直接运行此sql文件即可
集成服务创建SSiS项目SQL2008完全手册
springboot项目sql初始化资料
ssm_易学网_项目代码、 项目sql、 项目文档
Java 之 Spring Boot + Vue 前后端分离项目 SQL文件
【标题】"捷信项目 sql" 涉及的知识点主要集中在SQL(Structured Query Language)在实际项目中的应用,特别是与捷信商贸公司相关的数据库管理和数据处理方面。SQL是用于管理关系数据库的标准语言,它包括数据查询、...
MybatisX是一款针对Mybatis框架开发的插件,它的主要功能是帮助开发者在日志中打印出项目的SQL语句,以便于调试、优化数据库查询和理解数据操作的过程。这款插件极大地提升了开发效率,尤其是在处理复杂的业务逻辑和...
达内培训电信计费系统sql脚本 电信计费系统基于ssh框架 采用oracle数据库
针对sqlserver语句的一些基础学习,大四即将结束想把大学里做的项目进行简单的归纳整理
【Java + SQL 项目代码详解】 在这个项目中,我们看到的是一个使用Java编程语言与SQL数据库交互的应用。Java,作为一种广泛使用的面向对象的编程语言,以其跨平台的特性、丰富的库支持以及强大的性能,常被用于开发...
乐优商城项目sql文件,可直接mysql中导入该sql文件执行一下即可。
在SQL Server数据库管理系统中,项目案例通常涉及到一系列的实际应用场景,涵盖了数据存储、查询优化、事务处理、安全性控制、备份恢复等多个方面。以下是一些可能在"SQL SERVER项目案例"中涉及的重要知识点: 1. *...
JSP项目包里面包含6个小项目,数据库是用sqlserver2000,解压后直接在MyEclipse里面导入JSP_E? 然后配置数据库跟tomcat则可以发布,里面包含网上购书(文件为本地上传(伪上传)),分页,用户登录注册等项目!
ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107024544
小区物业管理系统配套数据库SQL语句,在Oracle中导入该SQL语句,数据库建立成功
云E办项目的 sql 文件
云盘系统sql文件,提供云盘系统需要的各个表的字段以及少量的数据。