Bonjour à tous,
Je suis nouveaux sur cette merveille qu'est Qlik et j'ai des difficultés à faire le parallèle avec mes connaissances en SQL. L'idée étant que j'ai load une table ayant cette forme:
[article_status]:
SELECT "id",
"article_id",
"parent_article_id",
"movement_id",
"active",
"movement_date",
"article_return_id"
FROM "catalogue"."article_status";
Il peut y avoir plusieurs ligne avec un article_id et des movement_date différentes. Je voudrais obtenir le movement_id pour chaque article_id et Max(movement_date).... J'espère m'être fait comprendre.
Jusque là, je n'arrive pas à faire un regroupement car je ne peux pas effectuer une opération tel que
LOAD movement_id WHERE Max(movement_date) GROUP BY article_id
J'espère que vous pourrez m'éclairer sur le sujet, merci.
Si j'ai bien compris,
pour l'exemple envoyé, ya pas de mouvement_id 4, je pense que c'est juste un oubli au niveau des data sources
le output je suppose est id 3 et 4.
Je vous propose cette version (ya plusieurs façon de faire) en script de chargement :
Data:
LOAD * INLINE [
id, article_id, parent_article_id, movement_id, active, movement_date, article_return_id
1, 1, null, 1, false, 2019-09-10, null
2, 1, null, 2, false, 2019-10-03, null
3, 1, null, 1, false, 2020-04-15, null
4, 2, null, 1, false, 2020-04-15, null
];
Result:
noconcatenate
load FirstSortedValue(id,-Date#(movement_date,'YYYY-MM-DD')) as id resident Data group by article_id ;
left join load * resident Data;
drop table Data;
résultats :
Bonjour,
est ce que vous pouvez partager un exemple de vos données ? (quelques lignes) ?
Qlikview ou Qliksense ?
Bonjour Taoufiq,
Oui, biensûr :
id | article_id | parent_article_id | movement_id | active | movement_date | article_return_id |
1 | 1 | null | 1 | false | 2019-09-10 | null |
2 | 1 | null | 2 | false | 2019-10-03 | null |
3 | 1 | null | 1 | false | 2020-04-15 | null |
4 | 2 | null | 1 | false | 2020-04-15 | null |
Le résultat attendu étant (pour les 4 premiers enregistrements):
id | article_id | parent_article_id | movement_id | active | movement_date | article_return_id |
1 | 1 | null | 1 | false | 2019-05-15 | null |
4 | 2 | null | 4 | true | 2020-04-15 | null |
Cordialement
Si j'ai bien compris,
pour l'exemple envoyé, ya pas de mouvement_id 4, je pense que c'est juste un oubli au niveau des data sources
le output je suppose est id 3 et 4.
Je vous propose cette version (ya plusieurs façon de faire) en script de chargement :
Data:
LOAD * INLINE [
id, article_id, parent_article_id, movement_id, active, movement_date, article_return_id
1, 1, null, 1, false, 2019-09-10, null
2, 1, null, 2, false, 2019-10-03, null
3, 1, null, 1, false, 2020-04-15, null
4, 2, null, 1, false, 2020-04-15, null
];
Result:
noconcatenate
load FirstSortedValue(id,-Date#(movement_date,'YYYY-MM-DD')) as id resident Data group by article_id ;
left join load * resident Data;
drop table Data;
résultats :