Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
stephaniee
Creator
Creator

Dernière Valeur de L'enregistrement

Bonjour, 

Je cherche à construire un tableau de bord avec des disponibilités de planning par réparateur.

Dans le modèle de données, il y a autant de lignes enregistrées que de validation du planning. (Même si aucune modification apportée). 

J'ai donc besoin de pouvoir prendre dans mon tableau de bord la dernière ligne enregistrée. 

Avez-vous une idée de calcul ? Ma formule à date est la suivante : 

count({<Dispo_Cat_A={'Disponible'}>} ([Date_Planning]))

Avec cette formule, j'ai toutes les lignes enregistrées. Or je souhaite avoir la dernière valeur enregistrée par date.

Merci beaucoup pour votre aide, 

Stéphanie

5 Replies
flochi75
Creator III
Creator III

Bonjour Stéphanie,

 

c'est quoi ton champ date d'enregistrement ? (admettons que ce soit DATE_ENR )

pour moi tu as 2 solutions :

1/ soit dans l'expression : count({<Dispo_Cat_A={'Disponible'},DATE_ENR ={$(=max(DATE_ENR)}>} ([Date_Planning]))

2/ soit en script avec un group by :

load Date_planning

max(DATE_ENR)

resident Ta_Table group by Date_Planning ;

 

florent

stephaniee
Creator
Creator
Author

Merci Florent pour ta réponse. 

J'ai essayé la solution une et ca coince ! Je crois que je vais l'ajouter à mon script. 

Je te copie colle ma table ci-dessous. 

LOAD
[Id_MyCaps_Disponibilite],
[Id_Garage] AS [Id_Garage-NUM_MF],
[Date_Planning],
if(len(Date_Planning)>0,
if((Date_Planning - today(0))>=7,'Semaine 2',
if((Date_Planning - today(0))>=0,'Semaine 1','Passé'))) as Semaine_Planning,
[Disponibilite_Atelier],
[Disponibilite_Cat_A],
if(([Disponibilite_Cat_A])=0,'Non-Renseigne',
if(([Disponibilite_Cat_A])=1,'Disponible',
if(([Disponibilite_Cat_A])=2,'Indisponible')))as Dispo_Cat_A,
[Disponibilite_Cat_B],
[Disponibilite_Cat_C],
[Disponibilite_Cat_D],
[Disponibilite_Cat_E],
[Disponibilite_Cat_F],
[Disponibilite_Cat_VU],
[Date_Creation] AS [mycaps_disponibilite.Date_Creation],
[Cree_Par] AS [mycaps_disponibilite.Cree_Par];
SQL SELECT `Id_MyCaps_Disponibilite`,
`Id_Garage`,
`Date_Planning`,
`Disponibilite_Atelier`,
`Disponibilite_Cat_A`,
`Disponibilite_Cat_B`,
`Disponibilite_Cat_C`,
`Disponibilite_Cat_D`,
`Disponibilite_Cat_E`,
`Disponibilite_Cat_F`,
`Disponibilite_Cat_VU`,
`Date_Creation`,
`Cree_Par`
FROM `capsnaff`.`mycaps_disponibilite`;

Peux-tu me dire comment j'intègre cela dans ce script.. ?

Merci,

Stéphanie

flochi75
Creator III
Creator III

//d'abord, tu nommes ta table :

MA_TABLE :

LOAD
[Id_MyCaps_Disponibilite],
[Id_Garage] AS [Id_Garage-NUM_MF],
[Date_Planning],
if(len(Date_Planning)>0,
if((Date_Planning - today(0))>=7,'Semaine 2',
if((Date_Planning - today(0))>=0,'Semaine 1','Passé'))) as Semaine_Planning,
[Disponibilite_Atelier],
[Disponibilite_Cat_A],
if(([Disponibilite_Cat_A])=0,'Non-Renseigne',
if(([Disponibilite_Cat_A])=1,'Disponible',
if(([Disponibilite_Cat_A])=2,'Indisponible')))as Dispo_Cat_A,
[Disponibilite_Cat_B],
[Disponibilite_Cat_C],
[Disponibilite_Cat_D],
[Disponibilite_Cat_E],
[Disponibilite_Cat_F],
[Disponibilite_Cat_VU],
[Date_Creation] AS [mycaps_disponibilite.Date_Creation],
[Cree_Par] AS [mycaps_disponibilite.Cree_Par];
SQL SELECT `Id_MyCaps_Disponibilite`,
`Id_Garage`,
`Date_Planning`,
`Disponibilite_Atelier`,
`Disponibilite_Cat_A`,
`Disponibilite_Cat_B`,
`Disponibilite_Cat_C`,
`Disponibilite_Cat_D`,
`Disponibilite_Cat_E`,
`Disponibilite_Cat_F`,
`Disponibilite_Cat_VU`,
`Date_Creation`,

`Date_Creation` as CLEDATE // je duplique ce champ pour en faire une clé, afin que le champ originel n'en soit pas une
`Cree_Par`
FROM `capsnaff`.`mycaps_disponibilite`;

 

//ensuite, je pars du principe que la dernière date que tu souhaites remonter est "Date_Creation"

load Date_planning,

max(CLEDATE) as DATE_MAX

resident Ta_Table group by Date_Planning ;

 

du coup en expression de ton tableau, tu peux mettre ta condition :

count(if(Date_Creation=DATE_MAX,...)

 

Florent

stephaniee
Creator
Creator
Author

Le script ne se charge en me disant qu'il ne trouve pas "Date Planning"...

As-tu une idée ? 

Merci,

Stéphanie

flochi75
Creator III
Creator III

Bonjour Stéphanie,

 

c'est une erreur d'orthographe : 

il faut écrire

Date_Planning

à chaque fois, comme dans ton script original