Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
stephaniee
Creator
Creator

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

1 Solution

Accepted Solutions
JenniferBettiol
Partner - Contributor II
Partner - Contributor II

 

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
stephaniee
Creator
Creator
Author

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 ? 
JenniferBettiol
Partner - Contributor II
Partner - Contributor II

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

stephaniee
Creator
Creator
Author

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?? 
JenniferBettiol
Partner - Contributor II
Partner - Contributor II

 

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"

 

stephaniee
Creator
Creator
Author

Super ! Cela fonctionne! 

Merci 1 000 fois !