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

stephaniee
New Contributor III

Script Group By

Bonjour, 

Je cherche à créer une somme dans script avec un group by. Est-ce la bonne solution ? 

Ci-dessous mon script de chargement avec un message d'erreur : 

[suivi_facturations_lignes]:
LOAD `Id_Facturation_Ligne`,
`Id_Facture`,
`Num_Dossier`,
`Facturation_Code_Libelle`,
`Facturation_Donnee_Valeur`,
if (Facturation_Code_Libelle = 'Total_HT_MO', Facturation_Donnee_Valeur,' ') as panier_MO,
if (Facturation_Code_Libelle = 'Garage_Montant_Peinture', Facturation_Donnee_Valeur,' ') as panier_peinture,
if (Facturation_Code_Libelle = 'Garage_Montant_Pieces', Facturation_Donnee_Valeur,' ') as panier_pieces,
if (Facturation_Code_Libelle = 'Garage_Montant_Pieces_Reemploi', Facturation_Donnee_Valeur,' ') as panier_PRE;
SQL SELECT `Id_Facturation_Ligne`,
`Id_Facture`,
`Num_Dossier`,
`Facturation_Code_Libelle`,
`Facturation_Donnee_Valeur`
FROM capsoffice.`suivi_facturations_lignes`;

Ma_table :
lOAD `Id_Facture`,
`Num_Dossier`,
sum([`Facturation_Donnee_Valeur`]) as panier_statut
Resident capsoffice.`suivi_facturations_lignes`
Group by Num_Dossier;

Pouvez-vous me dire ce qui cloche ? 

L'idée est d'obtenir une somme par Num_Dossier du champ Facturation_Donnee_Valeur. 

Encore merci pour votre aide,

Stéphanie

Tags (1)
1 Solution

Accepted Solutions
Highlighted
Partner
Partner

Re: Script Group By

 

Essaye avec cela: 

"where ('Facturation_Code_Libelle' = 'Garage_Montant_Pieces' or 'Facturation_Code_Libelle' = 'Total_HT_MO'........."

en rappelant le champ à filtrer devant chaque valeur

capsoffice.'suivi_facturations_lignes' doit être une table qui existe et que tu as préalablement loadée, sinon ça ne fonctionne pas avec le code "Resident"

 

View solution in original post

5 Replies
Highlighted
stephaniee
New Contributor III

Re: Script Group By

Bonjour,

J'ai essayé en integrant la notion de where... ! 

Message d'erreur : 

L'erreur suivante s'est produite:
Unexpected token: '`suivi_facturations_lignes`', expected one of: 'Where', 'While', 'Group', 'Order'
 
Emplacement de l'erreur:
Ma_table : lOAD `Id_Facture`, `Num_Dossier`, `Facturation_Code_Libelle`, `Facturation_Donnee_Valeur`, sum(Facturation_Donnee_Valeur) as panier_statut Resident capsoffice.>>>>>>`suivi_facturations_lignes`<<<<<< Where (`Facturation_Code_Libelle` = 'Garage_Montant_Pieces') Group By [Id_Facture]
 
Les données n'ont pas été chargées. Corrigez l'erreur, puis recommencez l'opération de chargement.. 
 
J'ai écris ceci  : 
[suivi_facturations_lignes]:
LOAD `Id_Facturation_Ligne`,
`Id_Facture`,
`Num_Dossier`,
`Facturation_Code_Libelle`,
`Facturation_Donnee_Valeur`,
if (Facturation_Code_Libelle = 'Total_HT_MO', Facturation_Donnee_Valeur,' ') as panier_MO,
if (Facturation_Code_Libelle = 'Garage_Montant_Peinture', Facturation_Donnee_Valeur,' ') as panier_peinture,
if (Facturation_Code_Libelle = 'Garage_Montant_Pieces', Facturation_Donnee_Valeur,' ') as panier_pieces,
if (Facturation_Code_Libelle = 'Garage_Montant_Pieces_Reemploi', Facturation_Donnee_Valeur,' ') as panier_PRE;
SQL SELECT `Id_Facturation_Ligne`,
`Id_Facture`,
`Num_Dossier`,
`Facturation_Code_Libelle`,
`Facturation_Donnee_Valeur`
FROM capsoffice.`suivi_facturations_lignes`;

Ma_table :
LOAD `Id_Facture`,
`Num_Dossier`,
`Facturation_Code_Libelle`,
`Facturation_Donnee_Valeur`,
sum(Facturation_Donnee_Valeur) as panier_statut
Resident capsoffice.`suivi_facturations_lignes`
Where (`Facturation_Code_Libelle` = 'Garage_Montant_Pieces' or 'Total_HT_MO' or  'Garage_Montant_Peinture' or 'Garage_Montant_Pieces_Reemploi')
Group By [Id_Facture];
 
Quelqu'un a une idée ? 
Highlighted
Partner
Partner

Re: Script Group By

Hello,

Si l'idée est simplement d'obtenir une somme par Num_Dossier du champ Facturation_Donnee_Valeur, alors le script est :

Ma_table :
LOAD`Num_Dossier`,
sum([`Facturation_Donnee_Valeur`]) as panier_statut
Resident capsoffice.`suivi_facturations_lignes`
Group by Num_Dossier;

donc uniquement la somme de ton champ par la dimension choisie...

ou dans ton second cas :

Ma_table :
LOAD `Id_Facture`,
`Num_Dossier`,
`Facturation_Code_Libelle`,
`Facturation_Donnee_Valeur`,
sum(Facturation_Donnee_Valeur) as panier_statut
Resident capsoffice.`suivi_facturations_lignes`
Where (`Facturation_Code_Libelle` = 'Garage_Montant_Pieces' or 'Total_HT_MO' or  'Garage_Montant_Peinture' or 'Garage_Montant_Pieces_Reemploi')
Group By Id_Facture,Num_Dossier,Facturation_Code_Libelle,Facturation_Donnee_Valeur;

Dans tous les cas, ton group by doit récupérer tous les champs que tu sélectionne dans ton LOAD qui ne sont pas des aggrégations (sum, max,min....)

Highlighted
stephaniee
New Contributor III

Re: Script Group By

Merci pour ta réponse ! 

Quand je charge, j'ai l'erreur suivante.

L'erreur suivante s'est produite:
Unexpected token: '`suivi_facturations_lignes`', expected one of: 'Where', 'While', 'Group', 'Order'
 
Emplacement de l'erreur:
Ma_table : LOAD `Id_Facture`, `Num_Dossier`, `Facturation_Code_Libelle`, `Facturation_Donnee_Valeur`, sum(Facturation_Donnee_Valeur) as panier_statut Resident capsoffice.>>>>>>`suivi_facturations_lignes`<<<<<< Where (`Facturation_Code_Libelle` = 'Garage_Montant_Pieces' or 'Total_HT_MO' or 'Garage_Montant_Peinture' or 'Garage_Montant_Pieces_Reemploi') Group By Id_Facture,Num_Dossier,Facturation_Code_Libelle,Facturation_Donnee_Valeur
 
Je t'avoue ne pas comprendre... 😞 ! Notamment pourquoi les mots 'Group' et 'Code_libelle" sont en rouge dans mon script ? A priori l'erreur viendrait de là... (En PJ une copie d'écran..)
 
As-tu une idée?? 
Highlighted
Partner
Partner

Re: Script Group By

 

Essaye avec cela: 

"where ('Facturation_Code_Libelle' = 'Garage_Montant_Pieces' or 'Facturation_Code_Libelle' = 'Total_HT_MO'........."

en rappelant le champ à filtrer devant chaque valeur

capsoffice.'suivi_facturations_lignes' doit être une table qui existe et que tu as préalablement loadée, sinon ça ne fonctionne pas avec le code "Resident"

 

View solution in original post

Highlighted
stephaniee
New Contributor III

Re: Script Group By

Super ! Cela fonctionne! 

Merci 1 000 fois !