我刚开始的代码:

 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 中也要指明该字段属于哪张表中。

最新文章

  1. Zend Studio安装详解
  2. Distributed Databases and Data Mining: Class timetable
  3. javascript运算符——逻辑运算符
  4. cocos2dx中对象的两步初始化
  5. struts2 iterator排序
  6. 【坑】log4j-over-slf4j.jar AND slf4j-log4j12.jar的冲突问题
  7. mvc涉及到input设置了disabled
  8. 2014-9-17二班----11 web project
  9. python求3的倍数与和
  10. GSoap的使用(调用webservice接口)
  11. 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
  12. MySql 数据库安装、环境变量配置 以及 本地连接
  13. Bellman_ford模板
  14. 如何使squild服务只能使用自定义的端口号
  15. 解决vshost32.exe已停止工作
  16. OpenJudge 兔子与樱花
  17. Lua中元表的学习
  18. call、apply、bind的异同
  19. 安装nginx和nginx-gridfs和mongodb
  20. 当IDENTITY_INSERT设置为OFF时不能向表插入显示值。(源:MSSQLServer,错误码:544)

热门文章

  1. css display属性详解
  2. js前台检测上传图片大小的总结
  3. tcp-full.cc
  4. Eclipse 无法编译,提示“错误: 找不到或无法加载主类”
  5. eclipse 实用快捷键(最全)
  6. 【Leetcode】【Medium】Unique Paths
  7. sudo:*:command not found
  8. Python学习---重点模块之xml
  9. DOS下常用命令
  10. July 04th 2017 Week 27th Tuesday