SQLMAP:
1.
<select id="selectSiteIDCd" resultMap="userLoginStatSite">
SELECT
SITE_ID,
SITE_CD
FROM
SITE
</select>
2.
<select id="selectUserLoginByHourStat" parameterClass="UserLoginStatInfo" resultMap="userLoginResult">
SELECT
STAT_TM||':00~'||STAT_TM||':59' AS timeStamp,
<iterate property="siteList">
SUM(CASE WHEN SITE_ID=#siteList[].siteId# THEN LOGIN_CNT ELSE 0 END) AS $siteList[].siteCd$,
</iterate>
TO_CHAR((SELECT MAX(REG_DTM) FROM HOUR_LOGIN_STAT WHERE STAT_DT BETWEEN #startTime# AND #endTime# ),'YYYY/MM/DD HH24:MI') AS regDtm
FROM
LOGIN_STAT
GROUP BY STAT_TM
ORDER BY STAT_TM
</select>
这是第2个<select>的sql语句1. SELECT
2. STAT_TM||':00~'||STAT_TM||':59' AS timeStamp,
3. SUM(CASE WHEN SITE_ID='1' THEN LOGIN_UNI_CNT ELSE 0 END) AS Q,
4. SUM(CASE WHEN SITE_ID='2' THEN LOGIN_CNT ELSE 0 END) AS C,
5. TO_CHAR((SELECT MAX(REG_DTM) FROM HOUR_LOGIN_STAT WHERE STAT_DT BETWEEN '20090101' AND '20091111' ),'YYYY/MM/DD HH24:MI') AS regDtm
6. FROM
7. LOGIN_STAT
8. GROUP BY STAT_TM
9. ORDER BY STAT_TM 由于3,4行的SITE_ID和列名是动态生成的,所以在resultMap填写column不知道改怎么写如下?号该怎么填。
或者是否还有别的方法
<resultMap id="userLoginResult" class="UserLoginStatInfo"> <result property="timeStamp" column="timeStamp"/>
<result property="qxLoginCnt" column="?"/>
<result property="cyLoginCnt" column="?"/>
<result property="regDtm" column="regDtm"/>
</resultMap>小弟在此谢过了,救救我吧
1.
<select id="selectSiteIDCd" resultMap="userLoginStatSite">
SELECT
SITE_ID,
SITE_CD
FROM
SITE
</select>
2.
<select id="selectUserLoginByHourStat" parameterClass="UserLoginStatInfo" resultMap="userLoginResult">
SELECT
STAT_TM||':00~'||STAT_TM||':59' AS timeStamp,
<iterate property="siteList">
SUM(CASE WHEN SITE_ID=#siteList[].siteId# THEN LOGIN_CNT ELSE 0 END) AS $siteList[].siteCd$,
</iterate>
TO_CHAR((SELECT MAX(REG_DTM) FROM HOUR_LOGIN_STAT WHERE STAT_DT BETWEEN #startTime# AND #endTime# ),'YYYY/MM/DD HH24:MI') AS regDtm
FROM
LOGIN_STAT
GROUP BY STAT_TM
ORDER BY STAT_TM
</select>
这是第2个<select>的sql语句1. SELECT
2. STAT_TM||':00~'||STAT_TM||':59' AS timeStamp,
3. SUM(CASE WHEN SITE_ID='1' THEN LOGIN_UNI_CNT ELSE 0 END) AS Q,
4. SUM(CASE WHEN SITE_ID='2' THEN LOGIN_CNT ELSE 0 END) AS C,
5. TO_CHAR((SELECT MAX(REG_DTM) FROM HOUR_LOGIN_STAT WHERE STAT_DT BETWEEN '20090101' AND '20091111' ),'YYYY/MM/DD HH24:MI') AS regDtm
6. FROM
7. LOGIN_STAT
8. GROUP BY STAT_TM
9. ORDER BY STAT_TM 由于3,4行的SITE_ID和列名是动态生成的,所以在resultMap填写column不知道改怎么写如下?号该怎么填。
或者是否还有别的方法
<resultMap id="userLoginResult" class="UserLoginStatInfo"> <result property="timeStamp" column="timeStamp"/>
<result property="qxLoginCnt" column="?"/>
<result property="cyLoginCnt" column="?"/>
<result property="regDtm" column="regDtm"/>
</resultMap>小弟在此谢过了,救救我吧
问题是resultMap跟随sql语句也跟着变化呢?
或者还有别的方法吗?不管你答没答复 只要您看一眼 我都谢谢您,
<result property="qxLoginCnt" column="?"/>
<result property="cyLoginCnt" column="?"/>
<result property="regDtm" column="regDtm"/>
</resultMap>
SELECT
2. STAT_TM||':00~'||STAT_TM||':59' AS timeStamp,
3. SUM(CASE WHEN SITE_ID='1' THEN LOGIN_UNI_CNT ELSE 0 END) AS Q,
4. SUM(CASE WHEN SITE_ID='2' THEN LOGIN_CNT ELSE 0 END) AS C,
5. TO_CHAR((SELECT MAX(REG_DTM) FROM HOUR_LOGIN_STAT WHERE STAT_DT BETWEEN '20090101' AND '20091111' ),'YYYY/MM/DD HH24:MI') AS regDtm
6. FROM
7. LOGIN_STAT
8. GROUP BY STAT_TM
9. ORDER BY STAT_TM
上面xml文件中的<result property="qxLoginCnt" column="?"/>,<result property="cyLoginCnt" column="?"/> 的colum应和你要对应的列名(或列的别名)相同。