Difficult query (field not in (select distinct field2 from ...))

Posts   
 
    
YvesVD
User
Posts: 177
Joined: 19-Oct-2006
# Posted on: 02-Apr-2010 16:01:35   

Hello,

I have the following Oracle query I want to make create :

        SELECT
            KOP_ID, KOP_BD_KPLG_BEGIN, KOP_BD_KPLG, KOP_BD_KPLG_ADM
        FROM
            VPG_WRK_DEBET_KOP_CREDIT
        WHERE
            KOP_PARTIJ_ID = p_Partij_id
            AND KOP_DT_TOT_VERJ < SYSDATE
            AND DEB_DEBET_HFD_CD NOT IN ('K','G')
            AND CRE_CREDIT_HFD_CD = 'VST'
            and deb_jr not in ( [b]select distinct [/b]jr
                                from tag_ri_cor_log
                                where blok_regu_ind = 1
                                and dt_blok_tot is null
                                and lid_partij_id = KOP_PARTIJ_ID);

I tried coding the following but it does not give the select distinct in the subquery :

VpgWrkDebetKopCreditTypedView typedView = new VpgWrkDebetKopCreditTypedView();

PredicateExpression pred = new PredicateExpression();
pred.Add(TagRiCorLogFields.BlokReguInd == 1);
pred.Add(TagRiCorLogFields.DtBlokTot == DBNull.Value);
pred.Add(TagRiCorLogFields.LidPartijId == VpgWrkDebetKopCreditFields.KopPartijId);

IRelationPredicateBucket filter = new RelationPredicateBucket();
filter.PredicateExpression.Add(VpgWrkDebetKopCreditFields.KopPartijId == partijId);
filter.PredicateExpression.Add(VpgWrkDebetKopCreditFields.KopDtTotVerj < QueryHelper.GetDate());
filter.PredicateExpression.Add(VpgWrkDebetKopCreditFields.DebDebetHfdCd != new string[] { "K", "G" });
filter.PredicateExpression.Add(VpgWrkDebetKopCreditFields.CreCreditHfdCd == "VST");
filter.PredicateExpression.Add(new FieldCompareSetPredicate(VpgWrkDebetKopCreditFields.DebJr, null, TagRiCorLogFields.Jr, null, SetOperator.In, pred, true));

adapter.FetchTypedView(typedView, filter, false);

Please help

psandler
User
Posts: 540
Joined: 22-Feb-2005
# Posted on: 02-Apr-2010 18:17:21