Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je cherche à récuperer la derniere valeur du champ "disponibilite_atelier".
Ma table est la suivante :
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`,
Ma formule actuelle de calcul est la suivante (à laquelle il manque la notion de dernière valeur) :
(Count({<Disponibilite_Atelier = {'1'}>} Distinct [Id_Garage-NUM_MF]))
Avez-vous une idée ? Je coince.
Merci,
Stéphanie
Bonjour stéphanie
Sur la base de ton fichier Excel que tu as joins en exemple voici une ébauche de solution
script ( à adapter)
table:
LOAD
Id_Garage,
Date_Planning,
Disponibilite_Atelier,
Date_Creation
FROM [lib://bureau/Exemple Date_Dispo_Réparateur.xlsx]
(ooxml, embedded labels, table is Feuil1);
left join (table)
Load
Max(Date_Creation) as Date_Creation,
if(Date_Creation=max(Date_Creation),'1') as FLAG,
Id_Garage,
Date_Planning,
Disponibilite_Atelier
resident table
where Disponibilite_Atelier ='1' //and Date_Creation ='$(max(Date_Creation))'
group by Id_Garage,Date_Planning,Date_Creation,Disponibilite_Atelier;
je te joins le fichier qvf
voir ci dessous
en date du 12/02 pour ID garage MF0040 :
Disponibilté atelier = 1
Date création 07/02/2019
et J'ai bine en flag la valeur 1
Tu peux utiliser le flag ensuite pour tes calculs
Bonjour
Il faut utiliser un de tes champs date, le plus approprié , pour avoir la dernière valeur du champs disponibilité atelier
Bonjour,
OK - La date la plus appropriée est le champs : [Date_Creation] AS [mycaps_disponibilite.Date_Creation].
Selon moi, je dois créer une nouvelle table en écrivant qqchose comme ceci :
Ma_table_2 :
LOAD `Id_Garage`,
`Date_Planning`,
mettre formule pour récupérer la dernière valeur en lien avec date_creation pour chaque date planning par garage.
Resident ma_table
Group By Id_Garage,Date_Planning;
L'idée est d'avoir pour chaque date_planning la derniere disponibilité (champ Disponibilite_Atelier) renseignée pour chaque réparateur.
Aurais-tu une idée de comment j'écris que je veux la dernière date dans cette table 2 ?
J'ai trouvé des choses qui ressemble à çà mais aucun idée de comment les utiliser...
=Only(Aggr(max(date),.... ))
Je te joins en PJ en exemple de données extrait de ma table.
Encore merci pour ton aide,
Stéphanie
Hello Stéphanie,
Si tu dois récupérer pour id_Garage et une Date_Planning la valeur de Disponibilite_Atelier en fonction de la plus grande Date_Creation tu peux essayer ceci:
[Date Disponible Reparateur]:
LOAD Id_Garage, Date_Planning, Disponibilite_Atelier, Date_Creation
FROM ....;
Left join([Date Disponible Reparateur])
MaxDateDispo:
LOAD
Id_Garage, Date_Planning, Max(Date_Creation) as Date_Creation, 'OUI' as IsLastValue Resident [Date Disponible reparateur]
group by Id_Garage, Date_Planning
;
Tu peux ensuite filtrer tes résultats en utilisant le champs 'IsLastValue' ou l'utliser en Set Analysis si tu fais des calculs.
Cette solution garde le même nbre de record chargé dans ton modèle.
Si tu veux réduire tes enregistrements et ne garder que les record qui correspondent à la dernière valeur max, tu changes simplement la jointure --> Inner join([Date Disponible Reparateur])
Voili voilou
Raymond
J'ai modifié le From par Resident, et le script passe. Pour autant, je n'ai pas le resultat souhaité.
La valeur 'OUI' est visible pour toutes les dates et il ne remonte pas la dernière date uniquement.
En PJ, une illustration de ce que j'obtiens.
As-tu une idée de mon problème ? Est-ce la modification du From par Resident ?
Encore merci,
Stéphanie
J'ai modifié le From par Resident, et le script passe. Pour autant, je n'ai pas le resultat souhaité.
La valeur 'OUI' est visible pour toutes les dates et il ne remonte pas la dernière date uniquement.
En PJ, une illustration de ce que j'obtiens.
As-tu une idée de mon problème ? Est-ce la modification du From par Resident ?
Encore merci,
Stéphanie
Bonjour stéphanie
Sur la base de ton fichier Excel que tu as joins en exemple voici une ébauche de solution
script ( à adapter)
table:
LOAD
Id_Garage,
Date_Planning,
Disponibilite_Atelier,
Date_Creation
FROM [lib://bureau/Exemple Date_Dispo_Réparateur.xlsx]
(ooxml, embedded labels, table is Feuil1);
left join (table)
Load
Max(Date_Creation) as Date_Creation,
if(Date_Creation=max(Date_Creation),'1') as FLAG,
Id_Garage,
Date_Planning,
Disponibilite_Atelier
resident table
where Disponibilite_Atelier ='1' //and Date_Creation ='$(max(Date_Creation))'
group by Id_Garage,Date_Planning,Date_Creation,Disponibilite_Atelier;
je te joins le fichier qvf
voir ci dessous
en date du 12/02 pour ID garage MF0040 :
Disponibilté atelier = 1
Date création 07/02/2019
et J'ai bine en flag la valeur 1
Tu peux utiliser le flag ensuite pour tes calculs