Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
machghoulhaydhe
Contributor
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

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

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.

View solution in original post

8 Replies
lcloatre
Partner - Creator III
Partner - Creator III

Haydher,

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

machghoulhaydhe
Contributor
Contributor
Author

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
Partner - Creator III
Partner - Creator III

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

lcloatre
Partner - Creator III
Partner - Creator III

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

sfatoux72
Partner - Specialist
Partner - Specialist

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
Contributor
Contributor
Author

effectivement ça fonctionne comme tu l'expliques.

Merci

sfatoux72
Partner - Specialist
Partner - Specialist

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

machghoulhaydhe
Contributor
Contributor
Author

Bonjour

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