0
這就是我的XML的樣子。所有定義的屬性都有相應的getter和setter定義。嘗試各種建議後,我無法解決「無效列索引」問題。列索引無效錯誤 - 無法解決問題
SELECT語句返回所有適當列出的屬性,並且我驗證了與單獨的Query相同的運行。
我從指定日期範圍之間的特定組獲取數據表中的數據。
<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>
你引用了一個動態值FROM XY_STATS WHERE GROUP_ID ='#{groupId}')Z;準備好的語句將用其他引號替換該值。這不應該解決嗎?另外:將< and >替換爲<和>而不是CDATA部分,使sql代碼更具可讀性。 –
謝謝。我的錯。我刪除了groupId的單引號,它工作。 – user1652054
然後添加了答案;請標記爲已回答,以便不回答此問題。乾杯。 –