ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Valentina Fabrizi <fabrizi_valent...@yahoo.it>
Subject How to map a dynamic condition on Left Outer Join
Date Mon, 22 Feb 2010 11:22:30 GMT
Hello and have a nice day!


I try to use iBatis for my web-app reporting section.
I need to add a dynamic condition on a LEFT OUTER JOIN not in a WHERE clause.....

I'm using ibatis-2.3.4.726.jar

Query:

<
 SELECT status.nome as STATO, 
           status.id_status as ID_STATUS,
           COUNT(distinct rfx_cat_merc.id_rfx) as NUMERO_RFX,
           to_char(SUM(to_number(replace(risposta_rfx_riferimento.risposta_stringa,
'.', '')))) as VALORE_BUDGET,
           to_char(AVG(to_number(replace(risposta_rfx_riferimento.risposta_stringa,
'.', '')))) as VALORE_MEDIO_BUDGET,
           to_char(SUM(to_number(replace(risposta.risposta_stringa, '.', ''))))
as VALORE_OFFERTE,
           to_char(SUM(to_number(replace(risposta_for_aggiudicatario.risposta_stringa,
'.', '')))) as VALORE_AGGIUDICATO,
           to_char(SUM(to_number(replace(risposta_rfx_riferimento.risposta_stringa,
'.', ''))) - SUM(to_number(replace(risposta_for_aggiudicatario.risposta_stringa, '.', ''))))
as SAVING,
           to_char((SUM(to_number(replace(risposta_rfx_riferimento.risposta_stringa,
'.', ''))) - SUM(to_number(replace(risposta_for_aggiudicatario.risposta_stringa, '.', ''))))
/ SUM(to_number(replace(risposta_rfx_riferimento.risposta_stringa, '.', '')))) as SAVING_PERCENTUALE
 
FROM status
        
        LEFT OUTER JOIN rfx_cat_merc ON rfx.id_rfx = rfx_cat_merc.id_rfx and rfx_cat_merc.id_cat_merc
= #catMerc#
        LEFT OUTER JOIN rfx_compilata ON rfx.id_rfx = rfx_compilata.id_rfx and rfx.id_rfx
= rfx_cat_merc.id_rfx
        LEFT OUTER JOIN risposta ON rfx_compilata.id_rfx_compilata = risposta.id_rfx_compilata
and risposta.id_item in ('Valore_Totale_Offerta_id', 'Total_Value_Offers_id', 'Valeur_Total_Offre_id')
        LEFT OUTER JOIN rfx_riferimento ON rfx.id_rfx = rfx_riferimento.ID_RFX and rfx.id_rfx
= rfx_cat_merc.id_rfx
        LEFT OUTER JOIN risposta_rfx_riferimento ON rfx_riferimento.ID_RFX_RIFERIMENTO
= risposta_rfx_riferimento.ID_RFX_RIFERIMENTO and risposta_rfx_riferimento.id_item in ('Valore_Totale_Offerta_id',
'Total_Value_Offers_id', 'Valeur_Total_Offre_id')
        LEFT OUTER JOIN utente ON rfx.fornitore_aggiudicatario = utente.id_fornitore
        LEFT OUTER JOIN rfx_compilata compilata_for_aggiudicatario ON utente.id_utente
= compilata_for_aggiudicatario.compilata_da and rfx.id_rfx = compilata_for_aggiudicatario.id_rfx
and rfx_compilata.id_rfx_compilata = compilata_for_aggiudicatario.id_rfx_compilata and rfx.id_rfx
= rfx_cat_merc.id_rfx
        LEFT OUTER JOIN risposta risposta_for_aggiudicatario ON compilata_for_aggiudicatario.id_rfx_compilata
= risposta_for_aggiudicatario.id_rfx_compilata and risposta_for_aggiudicatario.id_item in
('Valore_Totale_Offerta_id', 'Total_Value_Offers_id', 'Valeur_Total_Offre_id')
 
GROUP BY status.nome, status.id_status
ORDER BY status.id_status
 
 
Thanks!
Cheers, ValentinaLEFT OUTER JOIN rfx ON status.id_status = rfx.stato_rfx and rfx.data_creazione
between #dataCreazioneDa# and #dataCreazioneA# ???? <dynamic><isNotNull prepend="and"
property="tipoRfx">rfx.tipo_rfx = #tipoRfx#</isNotNull></dynamic>????</select>select
id="findCruscottoRfxDateCatMerc" cacheModel="cruscottoRfxDateCatMercCache" resultMap="cruscottoRfxResult"
parameterClass="java.util.Map">


      
Mime
View raw message