I
would like to set the properties of one result map from multiple
<select> statements. Is it possible to do as below? if we can
do I would like to know how to pass the parameters to the other select
statments? I would appreciate if some one can let me know.
<resultMap id="MainResult" class="Product">
<result property="totalVal" column="TOTAL_VAL"/>
<result property="totalAmt" column="TOTAL_AMT"/>
<result property="totalProds" column="TOTAL_PRODS"/>
<result property="maxVal" select="merchant.getMerchantMax" />
<result property="maxProds" select="merchant.getMerchantMaxInfo" />
</resultMap>
<select id="getMerchantInfo" resultClass="string" parameterClass="map"
resultMap="MerchantDistributionResult">
SELECT COUNT(*) as TOTAL_VAL
, SUM(p.mathamount) as TOTAL_AMT
, COUNT(distinct p.prods) AS TOTAL_PRODS
FROM product p
WHERE
AND p.proddate BETWEEN #startDate# AND #endDate#
</select>
<select id="getMerchantMax" resultClass="string">
SELECT MAX(tbl.cnt1) as MAX_CNT
from (
SELECT COUNT(*) as cnt1
FROM Merchant m
where m.date BETWEEN to_date('12/25/2006','mm/dd/yyyy') AND
to_date('12/30/2006','mm/dd/yyyy')
GROUP BY round(m.date,'DD')) tbl;
</select>
<select id="getMerchantMaxInfo" resultClass="string">
SELECT MAX(tbl.cnt2) as MAX_PRODS
from (
COUNT (distinct m.prods) as cnt2
FROM merchant m
WHERE m.proddate BETWEEN to_date('12/25/2006','mm/dd/yyyy') AND
to_date('12/30/2006','mm/dd/yyyy')
GROUP BY round(m.date,'DD')) tbl;
</select>
Thanks,
KKV