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
chadliagabsi
Contributor II

FOREACH IN EXPRESSION

Bonjour

j'ai besoin de parcourir les lignes du même flux id et de soustraire la première de la dernière ligne.

test.png

Tags (1)
1 Solution

Accepted Solutions
kevinchevrier
Contributor III

Re: FOREACH IN EXPRESSION

Voici un exemple qui fonctionne (je l'ai testé), tu n'as plus qu'à l'adapter à tes noms de champ :

TABLE_TEMP :

LOAD * INLINE [

    IDFLUX, VALEUR

    A, 2

    A, 3

    A, 4

    A, 5

    B, 6

    B, 10

    B, 30

    B, 1

    C, 2

    C, 8

    C, 9

];

TABLE :

Load *, RowNo() as ROWID

Resident TABLE_TEMP

ORDER BY IDFLUX;

DROP TABLE TABLE_TEMP;

VALEUR_MIN_MAX :

Load IDFLUX,

FirstSortedValue(VALEUR,ROWID) as VALEUR_PREMIERE_LIGNE,

FirstSortedValue(VALEUR,-ROWID) as VALEUR_DERNIIERE_LIGNE

RESIDENT TABLE

group by IDFLUX;

2 Replies
kevinchevrier
Contributor III

Re: FOREACH IN EXPRESSION

Chadlia,

Pas évident de te répondre sans connaître tout tes champs.

Dans l'idée, tu peux utiliser l'expression FirstSortedValue :  FirstSortedValue - fonction de script ‒ QlikView

FirstSortedValue - fonction de graphique ‒ QlikView. ‌Au préalable, tu créé une table avec un numéro par ligne. Ainsi tu pourras chercher le numéro de ligne min et max par IDFLUX (grâce à un group by IDFLUX)

Kevin

kevinchevrier
Contributor III

Re: FOREACH IN EXPRESSION

Voici un exemple qui fonctionne (je l'ai testé), tu n'as plus qu'à l'adapter à tes noms de champ :

TABLE_TEMP :

LOAD * INLINE [

    IDFLUX, VALEUR

    A, 2

    A, 3

    A, 4

    A, 5

    B, 6

    B, 10

    B, 30

    B, 1

    C, 2

    C, 8

    C, 9

];

TABLE :

Load *, RowNo() as ROWID

Resident TABLE_TEMP

ORDER BY IDFLUX;

DROP TABLE TABLE_TEMP;

VALEUR_MIN_MAX :

Load IDFLUX,

FirstSortedValue(VALEUR,ROWID) as VALEUR_PREMIERE_LIGNE,

FirstSortedValue(VALEUR,-ROWID) as VALEUR_DERNIIERE_LIGNE

RESIDENT TABLE

group by IDFLUX;