Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
New Contributor

Group by et order by

Bonjour,

Est ce qu'il y a une possibilité de mettre Order By avant Group by ?

J'ai fais  un autonumber sur quelque champs est j'ai stocké les résultats dans une clé

j'ai crée ensuite un identifiant unique pour chaque ligne , et là je dois faire un order by date afin de calculer l'id max pour mes transactions

(ex : la dernière transaction est celle qui a le plus grand id ) .

J'ai essayé avec ça mais ça marche pas :

Table1:

LOAD *,

  AutoNumber( ACTION &DATE &montant & reference) as Key;

LOAD

  RecNo()as id,ACTION,CODE,DATE,montant,reference,message

FROM [lib://Documents/données.CSV]

(txt, codepage is 28591, embedded labels, delimiter is ';', msq)

Where  [CODE]<>'1913'  and [CODE]<>'2001' ;

NoConcatenate

Table2:

Load*

Resident Table1 order by [DATE];

drop table Table1;

Outer Join(Table2)

LOAD

Key,

max(id) as MaxId

RESIDENT Table2

GROUP BY Key;

FinalTable:

Load*,

If(((id = MaxId) and ([message] = 'ERROR'OR [message] = 'ACCEPTED' or [message] = 'REFUSED' or [message] = 'CANCELLED'))or([message] = 'ACCEPTED') , 1, 0) as DB

Resident Table2

Order By id  ;

drop Table Table2;

Pourriez-vous m'aider svp ?

Merci

Cordialement

Tags (1)
4 Replies
Highlighted
Valued Contributor II

Re: Group by et order by

Bonjour,

pourrais tu donner stp qques lignes en entrée et le résultat attendu ?

si tu fais max(id) tu aura le max quelque soit l'order by que tu fais ?

cdt

Valued Contributor

Re: Group by et order by

Bonjour,

Peux tu essayer d'adapter ce script à ton besoin ?

le principe est de charger tes transactions (le load * inline dans mon exemple) et de se servir de la date comme une clé pour faire un max dessus, et filtrer les enregistrement grâce au right join.

Attention, le code ne marchera pas si il y a deux dates identiques pour une même transactions

TRANSACTIONS:
LOAD Year(Date)*10000 + Month(Date)* 100 + Day(Date) as Period_Id,
     *;
// A remplacer par ta table source 
LOAD * Inline [
Transaction,Date,Ref,Montant
A,21/02/2018,T00A,350
A,22/02/2018,T00A,245
A,25/04/2018,T00A,158
B,21/02/2018,T00A,487
B,22/02/2018,T00A,578
B,28/04/2018,T00A,630
];

right join(TRANSACTIONS)
LOAD Transaction,Max(Period_Id) as Period_Id
Resident TRANSACTIONS
group by Transaction;

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Highlighted
New Contributor

Re: Group by et order by

Bonjour ,

Merci pour ta réponse , j'ai résolu le problème , fallait mettre un order by avant la création de l'id

cdt

Highlighted
New Contributor

Re: Group by et order by

Merci pour ta réponse