解决方案 »

  1.   

    问题是这是客户写的存储过程拼出来的SQL,我们没法改
      

  2.   

    可是查询的列a.CLIENT_ID, a.PLCLAIMSEQ明确指出了表啊
      

  3.   

    我把下面SQL中的wkdtl分别改成wkdtl1,wkdtl2...就不会报错了。
      JOIN ROS.ROS_WORK_QUEUE_CRITERIA_DTL_T wkdtl on a.CLIENT_ID =
                                                      wkdtl.field_value
                                                  and wkdtl.REC_ID = 900
      JOIN ROS.ROS_WORK_QUEUE_CRITERIA_DTL_T wkdtl on a.PROVIDER_ID =
                                                      wkdtl.field_value
                                                  and wkdtl.REC_ID = 901
      JOIN ROS.ROS_WORK_QUEUE_CRITERIA_DTL_T wkdtl on d.project_type =
                                                      wkdtl.field_value
                                                  and wkdtl.REC_ID = 902
      

  4.   

    表的别名重复...
    这个就没什么好讨论的了,别名的使用主要是为了简化和区分
    两个表的别名设成一样,逻辑上都会出现问题
    例如
    select *
    from a,a where a.c1=a.c1
    这里条件里的a可以认为是同一个表,造成恒成立,产生笛卡尔积在有些版本中的确不会报错,但不报错不一定是好事,它可能会产生你不想要的结果集