首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无效的列索引错误-无法解决问题

无效的列索引错误-无法解决问题
EN

Stack Overflow用户
提问于 2012-09-21 23:10:02
回答 1查看 2.2K关注 0票数 0

这就是我的XML的样子。所有定义的属性都定义了各自的getter和setter。在尝试了各种建议后,我无法解决“无效列索引”的问题。

SELECT语句返回适当列出的所有属性,并且我已经验证了作为单独的查询运行相同的属性。

我正在从指定日期范围内的特定Group的一组表格中获取数据。

代码语言:javascript
复制
    <resultMap id="result" type="ValueStats">
        <result property="GroupId" column="GROUP_ID"/>
        <result property="valueId" column="VALUE_ID"/>
        <result property="valueName" column="VALUE_NAME"/>
        <result property="valImp" column="IMP"/>
        <result property="valCks" column="CKS"/>
        <result property="valCR" column="CR"/>
        <result property="valAp" column="AP"/>
        <result property="valRv" column="RV"/>
        <result property="valCt" column="CT"/>
        <result property="fromDate" column="FROM_DATE"/>
        <result property="toDate" column="END_DATE"/>
        <result property="valKc" column="KC"/>
    </resultMap>

    <select id="getAll" resultMap="result">
        SELECT 
              B.GROUP_ID AS GROUP_ID,
              B.VALUE_ID AS VALUE_ID,
          B.VALUE_NAME AS VALUE_NAME,
          A.IMP AS IMP, 
          A.CKS AS CKS,
          A.CR AS CR,
          A.AP AS AP,
          A.RV AS RV,
          A.CT AS CT,
          #{fromDate} AS FROM_DATE,
          #{toDate} AS END_DATE,
          A.KC AS KC
        FROM
        (SELECT 
              Z.VALUE_ID AS VALUE_ID,
              ROUND(AVG(Z.IMP), 0) AS IMP, 
              ROUND(CEIL(AVG(Z.CKS)),0) AS CKS, 
              ROUND(AVG(Z.CR),5) AS CR,  
              ROUND(AVG(Z.AP),2) AS AP,
              ROUND(AVG(Z.CT),2) AS CT, 
              ROUND(AVG(Z.RV),2) AS RV,
              ROUND(COUNT(Z.VALUE_ID)) AS KC
              FROM
                (SELECT 
                  VALUE_ID AS VALUE_ID, 
                  IMP AS IMP, 
                  TO_DATE(DATE_ID,'YYYYMMDD') AS DATEVAL, 
                  CKS, 
                  CR, 
                  AP, 
                  CT, 
                  RV
            FROM XY_STATS WHERE GROUP_ID='#{groupId}') Z
            WHERE
            Z.DATEVAL <![CDATA[<]]> TO_DATE(#{toDate}, 'DD-MM-YY') AND
            Z.DATEVAL >= TO_DATE(#{fromDate}, 'DD-MM-YY') 
            GROUP BY Z.VALUE_ID) A INNER JOIN XY_VALUE_SETTINGS B
            ON A.VALUE_ID = B.VALUE_ID
    </select>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-28 21:11:45

您可以使用引号将动态值括起来:

代码语言:javascript
复制
...
FROM XY_STATS WHERE GROUP_ID='#{groupId}') Z
...  

准备好的语句将用其他引号替换该值。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12533263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档