Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
dimitri18
Contributor III
Contributor III

Récupérer date sur Sélection active

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

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

‌tu peux le mettre à la fin de la section 1 sous cette forme :

Left Join(Mod1_1)

LOAD

   TestID,    // Clé de jointure

   Min(StartD) as FirstSartD

Resident Mod1_1

Group By TestID

View solution in original post

7 Replies
christophebrault
Specialist
Specialist

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])

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
dimitri18
Contributor III
Contributor III
Author

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

sfatoux72
Partner - Specialist
Partner - Specialist

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

dimitri18
Contributor III
Contributor III
Author

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

dimitri18
Contributor III
Contributor III
Author

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

sfatoux72
Partner - Specialist
Partner - Specialist

‌tu peux le mettre à la fin de la section 1 sous cette forme :

Left Join(Mod1_1)

LOAD

   TestID,    // Clé de jointure

   Min(StartD) as FirstSartD

Resident Mod1_1

Group By TestID

dimitri18
Contributor III
Contributor III
Author

Je vous remercie de votre réponse. ça marche nickel.

Bonne journée à vous et merci une nouvelle fois.