2017-09-11 194 views
0
<select id="BBSManageDAO.selectBbsSchdulManageList" parameterClass="BoardVO" resultMap="schdulProgramList"> 
<![CDATA[ 
SELECT NTT_ID, BBS_ID, NTT_NO, NTT_SJ, SUBSTR(NTT_CN,1,100) NTT_CN, CATEGORY, FRST_REGIST_PNTTM, NTCE_BGNDE, NTCE_ENDDE 
,FIELD1, EVN_END_DATE, FIELD2, TELL_NO, USE_AT 
FROM TN_BBS A 
WHERE 1=1 
AND A.USE_AT = 'Y' 
AND (
BBS_ID = 'education01_main' or BBS_ID = 'course01_main' or 
BBS_ID = 'feestival01_main' or BBS_ID = 'reading01_main' 
    ) 
]]> 
<isNotEmpty property="searchCondition2"> 
<isEqual property="searchCondition2" compareValue="DAILY" prepend="AND"> 
<![CDATA[ #searchSdate# >= FIELD1 AND #searchSdate# <= EVN_END_DATE ]]> 
</isEqual> 
isEqual property="searchCondition2" compareValue="WEEK" prepend="AND"> 
<![CDATA[ (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1) OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE) OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) AND USE_AT='Y']]> 
</isEqual> 
</isNotEmpty> 
<![CDATA[ 
ORDER BY FIELD1 ASC 
]]> 
</select> 

這是我SQL_Oracle.xmlOracle查詢不能正常工作

此查詢的內部代碼的部分是有關選擇事件的一些文章,如果文章滿足條件(條件是約日期)。

我有兩個API。一個是每天一個,另一個是每週一次。

在日常查詢用戶中,發送特定日期(#searchSdate#)作爲參數,並在當天進行DB搜索事件。

在每週用戶發送一個星期,以便他們給服務器一週的開始日期和一週的結束日期,併發回該周進行的事件。

的問題是,雖然我寫

WHERE 1=1 
AND A.USE_AT = 'Y' 

當我使用WEEK搜索他們給我以「N」 USE_AT數據的事件。
我不在乎DAILY是否向我發送相同的數據。但他們不
最後,當我加了AND USE_AT='Y'到他們工作的WEEK搜索結束。

但我仍然不知道爲什麼我的ibatis語法可能存在一些錯誤。

有誰知道有什麼問題?

回答

0

上面的查詢可能存在問題。嘗試使用或包含在周圍的一切brakets或比較修改查詢:像下面

((#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1) 
OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE) 
OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE)) 
AND USE_AT='Y' 

而且你SQL_Oracle.xml文件具有XML的問題,因爲第二isEqual沒有正確

標籤