我刚开始的代码:

 select
dm_veh_jdcgz_mx.DAY_ID ,--日期
dm_veh_jdcgz_mx.GLBM ,--管理部门ID
dm_veh_jdcgz_mx.SFZMHM ,--身份证号码
dm_veh_jdcgz_mx.DSRXM ,--姓名
dm_veh_jdcgz_mx.GZTS,--备注 dim_bas_gzzl.GZZL_MC ,--管理部门名称 dim_bas_glbm.GLBMMC ,--管理部门名称
dim_bas_glbm.DLBMMC,--大队名称
dim_bas_glbm.XLBMMC --联系地址
from
dm_veh_jdcgz_mx
left join dim_bas_gzzl
on
dim_bas_gzzl.GZZL= dm_veh_jdcgz_mx.GZZL
left join dim_bas_glbm
on
dim_bas_glbm.GLBM = dm_veh_jdcgz_mx.GLBM
where 1=1 ${if(len(GLBM)==0,"","and GLBM in('"+GLBM+"')")}
AND
DAY_ID>=replace('${startTime}','-','')
AND
DAY_ID<=replace('${endTime}','-','')

百度了好久,总算找到原因。

原文链接:https://blog.csdn.net/wxdsdtc831/article/details/7432774

原文内容:

在查询语句中,经常会出现一个错误: 
SQL基础:ORA-00918:未明确定义列的错误。

当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字段名,查询字段无法确认是改查那个字段 
时,就会报未明确定义列的错误。

第一种情况: 
1.单表时: 
比如fconsign表中存在三个字段:fcsg_consign_id,fcsg_consign_type,fcsg_consign_status 
SELECT FCSG_CONSIGN_ID FROM (SELECT FCSG_CONSIGN_ID,FCSG_CONSIGN_TYPE,FC.* FROM FCONSIGN FC) T
这个SQL语句就会报错,因为在T中FCSG_CONSIGN_ID有两个字段,导致DBMS无法确定要查询的哪个列 
SELECT FCSG_CONSIGN_STATUS FROM (SELECT FCSG_CONSIGN_ID,FCSG_CONSIGN_TYPE,FC.* FROM FCONSIGN FC) T 
这样就不会报错了,T中FCSG_CONSIGN_STATUS只有一个,这样就不会报错了。

总而言之:在嵌套查询中,外查询的字段在子查询中只能出现一个,否则则无法确定是要查哪个字段。就会报 未明确定义列的错误。

2.多表联合查询 
比如表A,B中都有a字段。 
select a from A,B 这样就要报错。因为也是无法确定查

哪一列。需要明确定义A.a活着B.a (如果在from语句后面为表取了别名,比如 select s_no,s_name,s_score,s.class_no,class_name from student s join class c on (s.class_no = c.class_no)的时候, 则 select语句中那个被多张表都拥有的相同字段名也需要用别名标识 如:s.class_no.)

后来我看自己的SQL,select的时候已经明确列名属于哪张表了,看了好久,总算找到原因所在了。

如下图:在 if 中也要指明该字段属于哪张表中。

帆软SQL报异常:多表连接的时候出现错误:未明确定义列的更多相关文章

  1. Oozie调度报错——ORA-00918:未明确定义列

    Oozie在执行sqoop的时候报错,同样的SQL在sqoop中可用,在oozie中不可用: Caused by: java.sql.SQLSyntaxErrorException: ORA-0091 ...

  2. 读《程序员的SQL金典》[3]--表连接、子查询

    一.表连接-JOIN 1. 自连接实例 查询类型相同的订单信息. SELECT O1 .*,O2.* FROM T_Order O1 JOIN T_Order O2 ON O1 .FTypeId= O ...

  3. SQL Server三种表连接原理

    在SQL Server数据库中,查询优化器在处理表连接时,通常会使用一下三种连接方式: 嵌套循环连接(Nested Loop Join) 合并连接 (Merge Join) Hash连接 (Hash ...

  4. SQL视图和多表连接

    本篇博客关注的焦点是视图的使用以及视图和多表连接的配合.以便可以了解视图,以及更好的使用视图. 首先,还是要说明一下视图的定义:视图是基于SQL语句的结果集的可视化虚拟表,换句话说视图就是SQL查询结 ...

  5. SQL Server中多表连接时驱动顺序对性能的影响

    本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  6. SQl Server 数据库多表连接

    [缘由] 为了防止数据的冗余,我们会将数据库中表进行拆分,这样就产生了多张表,表与表之间通过主外键关联,但这样又造成了我们查找和修改的困难,如何进行多表之间的查找呢? 我们将一个查询同时设计两个或两个 ...

  7. MyBaties异常之 ORA-00918: 未明确定义列

    原因: 如果a表与b表连接,且a与b中存在两个相同的字段,则必须指明字段是哪个表的 箭头所致位置没有指定ROOM_ID为那个表的,应修改为t1.ROOM_ID

  8. sql server 实现多表连接查询

    项目中要实现多表查询,用外连接实现. a表 a(aid,aname) 其中aid为pk b表 b(aid,bname,aid) 其中 bid为pk,aid为fk c表 c(cid,cname,aid) ...

  9. SQL Server 2012 - 多表连接查询

    -- 交叉连接产生笛卡尔值 (X*Y) SELECT * FROM Student cross Join dbo.ClassInfo --另外一种写法 SELECT * FROM Student , ...

随机推荐

  1. Data Flow ->> OLE DB Destination ->> Fast Load

    OLE DB Destination组件提供了fast load选项,用bulk模式load数据而不是row-to-row的模式.这样性能上好.但是需要注意一点就是,一旦用了fast load,err ...

  2. svn环境搭建

    (一)svn介绍   项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对代码文件.文档等没有进行版本控制,将会出现很多问题: 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易引发BUG ...

  3. Day02——Python基本数据类型

    一.运算符 1.算数运算符 2.比较运算符 3.复制运算符 4.逻辑运算符 5.成员运算符 二.基本数据类型 1.数字 整数(int) 在32位机器上,整数的位数为32位,取值范围为-2**31-2* ...

  4. QT的QPropertyAnimation讲解

    m_pAnimation->setEasingCurve(QEasingCurve::Linear); //直线风格 m_pAnimation->setLoopCount(-1); //无 ...

  5. Retrofit-入门使用

    1. 在模块目录下的build.gradle dependencies { compile "com.squareup.retrofit2:retrofit:2.1.0" comp ...

  6. linux 用户切换 标签: linux 2016-07-30 13:57 144人阅读 评论(0) 收藏

    一.指令修改 1.普通用户切换到root用户: su root 需要输入密码 2.root用户切换到普通用户: su 用户名 不需要输入密码 二.直接注销,再用新用户登录 注:1.两种方式存在差别,用 ...

  7. Intellij IDEA 修改编辑器背景颜色

    对眼睛有益的RGB数值分别是(199,237,204)

  8. 【转】Android开发:shape和selector和layer-list的(详细说明)

    <shape>和<selector>在Android UI设计中经常用到.比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到<shape> ...

  9. csv文件已经python内置csv模块

    csv(Comma Separated Value,即逗号分隔值),文件以纯文本形式存储表格数据(数字和文本).可以用excel打开,并自动将每个逗号隔开的数据作为一列在excel中显示. pytho ...

  10. 制作二维码java

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...