Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
machghoulhaydhe
New Contributor

je veux que les min planning a afficher!!!

J'ai un planning  de sortie   2 fois par jour  midi et départ 

pour le midi 12h30 et départ 16h45

je veux afficher seulement le planifier midi 12h30

Planning:

LOAD

USERID & '|' & EDAYS%  as Planing_id,

STARTDATE% ,

STARTTIME% ,

`NUM_OF_RUN_ID` ,

EDAYS% ,

ApplyMap ('NombrePointage', `NUM_OF_RUN_ID` & '|' & EDAYS% ) as NombrePointagePrevueParJour  ,

(Hour(STARTTIME%) * 60) + Minute(STARTTIME%) as STARTTIME_Minute, // debut

ENDTIME% ,

MakeTime(Hour(ENDTIME%),Minute(ENDTIME%)) as DEpart ,// DEpart

(Hour(ENDTIME%) * 60) + Minute(ENDTIME%) as ENDTTIME_Minute

Resident USER_OF_RUN;

aussi je veux utiliser le planing comme suit :

IF( HeurePointage< '10:00:00' and HeurePointage>'00:00:00' ,'Matin' ,

IF( HeurePointage> '10:00:00' and  HeurePointage<'13:15:00' ,'Midi' ,

IF( HeurePointage> '13:15:00' and  HeurePointage<'14:30:00' ,'AMidi' , 'Départ'))) as TypePointage



merci d'avance

Tags (1)
1 Solution

Accepted Solutions
sfatoux72
Valued Contributor

Re: je veux que les min planning a afficher!!!

Je ne comprend pas vraiment la structure de données finale que tu désires dans QlikView.

Tu as actuellement une table planning qui défini des intervalles (début-fin).

Si ton expression  "min (MakeTime(Hour(ENDTIME%),Minute(ENDTIME%))) as DEpart ,// DEpart" fait partie de ton script de chargement, C'est normale que cela ne fonctionne pas. Tu ne peux utiliser des fonctions d'agrégation comme Min seulement avec des group by.

Tu peux par exemple ajouter ceci à la suite de ton script pour ajouter un flag "_MidiPlanifier" permettant d'identifier le midi planifier:

Left Join (Planning)

LOAD

    Planing_id,                          // Clé de jointure

    min (DEpart) as DEpart,      // Clé de jointure

    1 as _MidiPlanifier 

Resident Planning

Group By Planing_id;

Je n'ai peut-être pas utiliser le bon champ en utilisant Planing_id, il faut que ce champ soit identique pour les 2 périodes d'une même journée d'un même utilisateur. Il va servir à regrouper les 2 périodes d'une même journée d'un même utilisateur et va permettre d'utiliser le Min pour trouver la première période.

8 Replies
lcloatre
Contributor III

Re: je veux que les min planning a afficher!!!

Haydher,

Je ne comprend pas ta demande. Peux-tu joindre un jeu d'essai et un exemple de ce que tu attends ?

machghoulhaydhe
New Contributor

Re: je veux que les min planning a afficher!!!

je veux afficher le midi planifier 

dans la base il y le midi planifier  et planifier départ

mais quant je utilise min (MakeTime(Hour(ENDTIME%),Minute(ENDTIME%))) as DEpart ,// DEpart

il sort un message d'erreur 'Invalid expression'

Capture.PNG

lcloatre
Contributor III

Re: je veux que les min planning a afficher!!!

Peux tu partager ton application ou, au moins, la totalité de ton expression min (MakeTime(Hour(ENDTIME%),Minute(ENDTIME%))) as DEpart ,// DEpart ?

lcloatre
Contributor III

Re: je veux que les min planning a afficher!!!

Es-tu sûr que QLIKVIEW a bien interprété le champ ENDTIME% comme un champ contenant des heures ?

sfatoux72
Valued Contributor

Re: je veux que les min planning a afficher!!!

Je ne comprend pas vraiment la structure de données finale que tu désires dans QlikView.

Tu as actuellement une table planning qui défini des intervalles (début-fin).

Si ton expression  "min (MakeTime(Hour(ENDTIME%),Minute(ENDTIME%))) as DEpart ,// DEpart" fait partie de ton script de chargement, C'est normale que cela ne fonctionne pas. Tu ne peux utiliser des fonctions d'agrégation comme Min seulement avec des group by.

Tu peux par exemple ajouter ceci à la suite de ton script pour ajouter un flag "_MidiPlanifier" permettant d'identifier le midi planifier:

Left Join (Planning)

LOAD

    Planing_id,                          // Clé de jointure

    min (DEpart) as DEpart,      // Clé de jointure

    1 as _MidiPlanifier 

Resident Planning

Group By Planing_id;

Je n'ai peut-être pas utiliser le bon champ en utilisant Planing_id, il faut que ce champ soit identique pour les 2 périodes d'une même journée d'un même utilisateur. Il va servir à regrouper les 2 périodes d'une même journée d'un même utilisateur et va permettre d'utiliser le Min pour trouver la première période.

machghoulhaydhe
New Contributor

Re: je veux que les min planning a afficher!!!

effectivement ça fonctionne comme tu l'expliques.

Merci

sfatoux72
Valued Contributor

Re: je veux que les min planning a afficher!!!

Si ma réponse est correcte, mettre la question comme résolue pour aider les autres membres de la communauté

machghoulhaydhe
New Contributor

Re: je veux que les min planning a afficher!!!

Bonjour

comment je met cette réponse est résolue !!