7 Replies Latest reply: Oct 31, 2017 3:56 AM by dimitri heau RSS

    Récupérer date sur Sélection active

    dimitri heau

      Bonjour,

       

      Je souhaite faire quelque chose d'assez simple mais je ne sais pas comment m'y prendre.

       

      1essai = une rampe = entre 1 et 10 pompes d'une rampe

       

      J'ai un champ de sélection de numéro de test, de pompe et de rampe et les dates de démarrage de ces essais.

       

      Cependant, 1 essai peut avoir plusieurs dates de démarrage, mais une rampe une ou plusieurs pompes associées.

       

      Je souhaite qu'en choisissant un numéro de test et une rampe, j'ai une "concaténation" des dates pour avoir toutes les valeurs de toutes les dates mais n'avoir que la première date en sélection.

      StartDRampe 1pompeTestIDRésultats souhaités
      10/10/20171117801410/10/2017178014
      15/10/201712178014
      15/10/20172217846215/10/2017178462

       

      Dans un second temps, je souhaite sélectionner un numéro de test, une rampe et une pompe et avoir le même résultat en fonction de la pompe choisit.

       

      je souhaite donc que le résultat soit visuel mais que mes données ne soient pas complètement concaténer car je peux faire une sélection soit par rampe, soit par pompe.

       

      En vous remerciant,

       

      Dimitri

        • Re: Récupérer date sur Sélection active
          Christophe Brault

          Bonjour,

           

          C'est compliqué de te répondre sans connaitre le modèle de données.

          Mais est ce que en faisant une expression dans un tableau simple comme cela pour ta date tu as le comportement voulu ?

           

          min([Date démarrage])

            • Re: Récupérer date sur Sélection active
              dimitri heau

              modèle de données Flow_Bench.JPG

               

              Tout d'abord merci de ta répondre.

               

              Voici le modèle de données déjà pas mal trafiqué pour répondre à mes autres besoins.

               

              J'ai bien le résultat souhaité en faisant :

              aggr(min([Mod1.StartD]),[Mod1.TestID])

               

              Mais je souhaite avoir uniquement la min(date)  mais avoir TOUTES les dates associées (Mod1.pump, ...) à mon TestID de toutes les dates de démarrage.

               

              Pour expliquer pourquoi, il arrive parfois que l'application qui effectue les essais plante. A son redémarrage, il enregistre à nouveau les paramètres de l'essai. Je me retrouve donc avec plusieurs fois le même essai mais avec des heures de démarrage différentes. Il y a comme volonté donc de prendre toutes les valeurs d'un essai mais prendre en compte uniquement la première date de démarrage.

               

              J'espère être plus clair, merci de ton aide.

               

              Dimitri

                • Re: Récupérer date sur Sélection active
                  Sébastien Fatoux

                  Etrange ton modèle de données sans aucun lien entre tes tables.

                   

                  Mais bon, pour ton problème tu peux simplement ajouter ceci à la fin de ton script de chargement :

                   

                  Left Join (Mod1)

                  LOAD

                     Mod1.TestID,    // Clé de jointure

                     Min(Mod1.StartD) as FirstSartD

                  Resident Mod1

                  Group By Mod1.TestID

                   

                  Tu auras alors un nouveau champs FirstSartD dans ta table Mod1 avec la valeur que tu cherche pour chacune de tes lignes de données

                    • Re: Récupérer date sur Sélection active
                      dimitri heau

                      Bonjour,

                       

                       

                      Oui c'est normal que je n'ai pas de jointure. les jointures je les ai fais sur un autre QVD. La les tables qui ne sont pas liées c'est parce qu'elles n'ont rien en commun mais dépendent du même banc d'essais.

                       

                      Je teste ça dans la matinée, merci.

                       

                      Dimitri

                      • Re: Récupérer date sur Sélection active
                        dimitri heau

                        J'ai essayé mais je n'arrive pas à savoir où et comment intégrer ce code. Je reçois des messages d'erreur du genre "invalid expression". j'ai intégré une recharge incrémentale mensuelle.

                         

                        Je dois sans doute mal utilisé votre formule, voici comment se décompose mon script :

                        Section 1 :

                        Mod1_1:

                        LOAD

                            Source,

                            TestID,

                            NumRamp,

                            NumModule,

                            NumPump,

                            NumCycleA,

                            Pump,

                            Horodatage,

                            TestStat,

                            TestFc,

                            StatusP,

                            StartD,

                            TpsCycleProg,

                            NbCycleProg,

                            TpsCycleON,

                            TpsCycleOFF,

                            StatusPCpt,

                            Année,

                            Mois,

                            MoisNum,

                            Semaine,

                            JourMinute

                        FROM [lib://Qvd (wilo_heaudi)/Extraction\Flow\Module1\Mod1_20*.QVD](qvd);

                         

                        Section2 : elle concerne le module 2 cela m'intéresse pas

                         

                        Section 3 :

                        Qualify *;

                        Mod1 :
                        Load  *       
                        Resident Mod1_1;
                        Drop Table Mod1_1;

                        Mod2:
                        Load * Resident Mod2_1;
                        Drop Table Mod2_1;

                        Unqualify *;

                        Début:
                        Load Distinct Timestamp#(Date(floor([Mod2.Horodatage])) &' '& maketime(hour([Mod2.Horodatage]),minute([Mod2.Horodatage]) , 0)) as Début
                        Resident Mod2;
                        ;

                        Fin:
                        Load [Début] as Fin
                        Resident Début;
                        ;

                         

                        Pouvez-vous me guider pour l'intégration de votre requête dans mon script.

                         

                        Merci d'avance.

                         

                        Dimitri