2 Replies Latest reply: Feb 28, 2018 4:23 AM by Denis BEHAGUE RSS

    Problème de filtre/critère

    Denis BEHAGUE

      Bonjour, je travail sur Qlik sense cloud et j'ai un problème avec la table que j'essaie de faire.

       

      voici un extrait des deux tables dans lesquelles je vais chercher mes informations pour que vous comprenez mieux par la suite.

       

           Table 1  

      Code_SITE        |  Code_etape   | date                                                                                               

      69333293714/11/2017
      69337293402/02/2018
      69338293724/01/2018
      69338294629/01/2018
      69339294611/12/2017
      69339293711/12/2017
      69339297231/01/2018
      69351294616/01/2018
      69351293724/01/2018
      69358293429/11/2017
      69359293428/11/2017
      69359293728/11/2017
      69359294616/01/2018

          

      table 2

       

      69333292819/05/2017
      69333295206/12/2017
      69334292804/12/2017
      69334295206/12/2017
      69335292801/12/2017
      69335295204/12/2017
      69337292830/11/2017
      69337295201/12/2017
      69338292819/05/2017
      69338296223/01/2018
      69338296024/01/2018
      69338295329/01/2018

       

      ce que je voudrais faire c'est donc un tableau avec tous les codes sites  la date de la table 1 la date de la table 2 et une colonne avec la fonction networkday(date_table1,date_table2, [jours fériés] ) et parfois il n'y pas de Date_table2 renseigner, dans ce cas la je remplace date_table_2 par today()

       

      MAIS je ne dois prendre dans la table 1 que les date pour les code_etape 2937 ,2997 ,3036 et 3075, 3114

      et dans la table 2 pour les code_etape 2960, 3003, 3042, 3081 et 3120

       

      Si j'utilise deux volets de filtre pour les code_etape de chaque table et je coche mes étapes je rencontre une problème car si je fais cela je perd certain code site et je ne peux plus faire ma deuxième version de networkday avec today() en date de fin car ce qui ce passe c'est que si je coche mes étapes par exemple pour le code site 69333 on a dans la table 1 l'étape 2937 donc j'aurai bien un résultat mais dans la table2 aucune des mes étapes cochés ne sera renseigné donc ce qui va ce passer c'est que le site 69333 va disparaître de ma liste de code_site et puisqu'il disparaît quand la date table 2 n'est pas renseigné m'as fonction avec today() n'apparait même pas.

       

      Il faudrait donc que je puisse conserver tous mes code site en cochant les filtres ou que je trouve une autre solution.

       

      J'ai tester autre chose mais cela n'as pas fonctionner, j'ai voulu afficher mes date voulu avec des if comme ceci " if(Table1.code_etape =2937 , table1.date) " mais cela ne fonctionne pas car comme dans mes tables je peux avoir plusieurs fois le même code site mais sur des étapes différentes il ne teste que la première ligne puis passe à au prochain code site donc si la première étape de mon code site est 2937 cela fonctionne par contre si cette étape n'est pas en première position cela ne fonctionne pas cela ne fonctionne pas.

       

      Je ne sais pas si j'ai était très clair, n'hésitez pas à demander des informations complémentaires.

        • Re: Problème de filtre/critère
          Christophe Brault

          Bonjour,

           

          Si j'ai bien compris le besoin, le script suivant devrai marcher pour toi :

          (J'ai mis dans deux onglets différent d'un fichier excel tes deux tables)

           

          // Code étapes pour filter les chargements

          Filtres:

          LOAD * Inline [

          P1,P2

          2937,2960

          2997,3003

          3036,3042

          3075,3081

          3114,3120

          ];


          TEMP:

          LOAD Code_SITE, 

               Date1 as Date_Debut

          FROM

          [C:\Users\Christophe\Downloads\testsites.xlsx]

          (ooxml, embedded labels, table is Feuil2)

          where exists(P1,Code_Etape) ; //on garde les étapes présentes dans le champs P1


          left join(TEMP) // On ramène dans la table la deuxième date pour chaque site

          LOAD Code_SITE, 

               Date2 as Date_Fin

          FROM

          [C:\Users\Christophe\Downloads\testsites.xlsx]

          (ooxml, embedded labels, table is Feuil3)

          where exists(P2,Code_Etape) ;//on garde les étapes présentes dans le champs P2


          Durées:

          LOAD Code_SITE,

          Date_Debut,

          Date_Fin,

          NetWorkDays(Date_Debut,alt(Date_Fin,today())) as Durée // fonction pour calcul entre deux dates. la fonction Alt()

          //remplace les dates de fin vides avec la date du jour

          Resident TEMP;

          drop table TEMP;