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é.

afguillard
New Contributor III

Clause where et group by

Bonjour,

Je ne comprend pas pourquoi ce script me ramène une erreur :

Directory;

LOAD 

Region,

Volume,

CA_Annuel,

sum(CA_Annuel) as CA_Total

FROM

[Fichiers pour exercices.xlsx]

(ooxml, embedded labels, table is Ventes )

Where sum(CA_Annuel)<10000

Group by Region;

Pouvez-vous m'aider?

Merci

Anne-Flore

Tags (1)
1 Solution

Accepted Solutions
Highlighted
Partner
Partner

Re: Clause where et group by

Non,

Car tu ne peux pas utiliser une fonction d'agrégation dans un Where.

Si c'était une connexion à une base de données, tu aurais pu utiliser Having sum(CA_Annuel<10000).

Mais dans le cas d'un fichier ou d'une table interne, tu dois utiliser un LOAD antérieure, comme ci-dessous:

Directory;

LOAD * Where CA_Total<10000;

LOAD

    Region,

    sum(CA_Annuel) as CA_Total

FROM

    [Fichiers pour exercices.xlsx] (ooxml, embedded labels, table is Ventes )

Group by Region;

View solution in original post

6 Replies
Highlighted
Partner
Partner

Re: Clause where et group by

Bonjour Flore,

Lorsque tu fait un "group by", tous les champs qui ne font pas partie de ton "group by" doivent être agrégé () .

Dans ton cas, un seul champ fait partie du group by ==> Region

Donc sum(CA_Annuel) est correct, mais les CA_Annuel et Volume ne sont pas agrégés, donc ==> erreur

Que veut tu faire exactement?

Highlighted
afguillard
New Contributor III

Re: Clause where et group by

Bonjour Sébastien,

Je veux juste calculer le CA annuel par région et exclure celles pour lesquelles le Ca annuel est inférieur à 10000.

D'après ce que tu me dis, il faudrait plutôt le script suivant :

Directory;

LOAD

Region,

sum(CA_Annuel) as CA_Total

FROM

[Fichiers pour exercices.xlsx]

(ooxml, embedded labels, table is Ventes )

Where sum(CA_Annuel)<10000

Group by Region;

Highlighted
Partner
Partner

Re: Clause where et group by

Non,

Car tu ne peux pas utiliser une fonction d'agrégation dans un Where.

Si c'était une connexion à une base de données, tu aurais pu utiliser Having sum(CA_Annuel<10000).

Mais dans le cas d'un fichier ou d'une table interne, tu dois utiliser un LOAD antérieure, comme ci-dessous:

Directory;

LOAD * Where CA_Total<10000;

LOAD

    Region,

    sum(CA_Annuel) as CA_Total

FROM

    [Fichiers pour exercices.xlsx] (ooxml, embedded labels, table is Ventes )

Group by Region;

View solution in original post

Highlighted
afguillard
New Contributor III

Re: Clause where et group by

Merci ! Ca fonctionne très bien comme ça.

Highlighted
Partner
Partner

Re: Clause where et group by

Cool,

peux-tu mettre la question comme résolue pour aider les autres membres de la communauté.

Merci

Highlighted
Partner
Partner

Re: Clause where et group by

Tu as mis ton remerciement comme réponse correcte!

ça ne va pas beaucoup aider les membres de la communauté.