Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
//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
Le script ne se charge en me disant qu'il ne trouve pas "Date Planning"...
As-tu une idée ?
Merci,
Stéphanie
Bonjour Stéphanie,
c'est une erreur d'orthographe :
il faut écrire
Date_Planning
à chaque fois, comme dans ton script original