1 Reply Latest reply: Sep 6, 2017 3:35 AM by Kevin Chevrier RSS

    Récuperation d'un champ sous plusieurs conditions

    Oumou Raby DIA

      Bonjour,

      Je souhaite récupérer un champ d'une table mais j'ai plusieurs conditions à gérer sur ce champ.

      Ainsi, j'ai deux feuilles dans la même application, dans les quelles je récupère ce champ mais sous des conditions différentes :

       

      1. Dans la première feuille : je récupère les PDL ouverts et fermés donc je gère cela dans l'expression(Etat PDL est "Ouvert ou "Fermé") ; la requête correspondante dans le script est :

      BRANCHEMENTS :

      LOAD

      SPT_ID,

      SPT_REFE AS REF_PDL,

      ADR_ID;

      SELECT *  FROM TECSERVICEPOINT ;

      ...

       

      2. Dans la deuxième feuille, je souhaiterai afficher les PDL ouverts sans contrats actifs , donc cette fois-ci il y'aurai des conditions à rajouter sous la requête. la requête correspondante dans le script serrait :

       

      BRANCHEMENTS :

      LOAD

      SPT_ID,

      SPT_REFE AS REF_PDL,

      ADR_ID;

      SELECT *  FROM TECSERVICEPOINT where not exists (select 1 from agrserviceagr a where a.spt_id = p.spt_id and  sag_enddt is  null) ;

      ...

       

      Donc, mon problème est que je ne sais pas comment gérer ces deux cas puisque les deux feuilles seront dans la même application , donc dans le même script.

       

      Merci d'avance.

       

        • Re: Récuperation d'un champ sous plusieurs conditions
          Kevin Chevrier

          Bonjour,

           

          Je ne suis pas sûr de comprendre ce que tu veux.

           

          1 - Soit tu veux 2 tables distinctes et les relier. Dans ce cas, je nommerais la table de la feuille 2 d'une autre manière "BRANCHEMENTS_OUVERTS_ACTIFS" par exemple. Ensuite, 2 possibilités :

                    - soit tu créés une clé de concaténation avec les champs en commun

                    - soit tu fais un right join :

                              BRANCHEMENTS_OUVERTS_ACTIFS :    

                                  LOAD * RESIDENT BRANCHEMENTS;

                                   Right join

                                   LOAD

                                   SPT_ID,

                                   SPT_REFE AS REF_PDL,

                                   ADR_ID;

                                   SELECT *  FROM TECSERVICEPOINT where not exists (select 1 from agrserviceagr a where a.spt_id                          = p.spt_id and  sag_enddt is  null) ;


          2- Soit tu veux 2 tables distinctes sans les relier:

          Dans ce cas :

          BRANCHEMENTS_OUVERTS_ACTIFS :    

          LOAD

          SPT_ID as ADR_ID_OUVERTS_ACTIFS,

          SPT_REFE AS REF_PDL as ADR_ID _OUVERTS_ACTIFS,

          ADR_ID as ADR_ID _OUVERTS_ACTIFS;

          SELECT CHAMP1 as CHAMP1_OUVERTS_ACTIFS  FROM TECSERVICEPOINT where not exists (select 1 from agrserviceagr a where a.spt_id                        = p.spt_id and  sag_enddt is  null) ;

           

          Kevin