Grouper les donnees provenant d'une requete
bamdji
-
DandypunkII Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
DandypunkII Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
bonjour je galère un concept en développement et bien je développe une application sous windev 18 et vu que je suis un petit bleu avec ce langage j'aimerais savoir s'il était possible de regrouper les données provenant d'une requête comme la fonction group by avec sql
s'il y a une manière de le faire faites le moi savoir s'il vous plait en postant vos exemples de programmation
merci
s'il y a une manière de le faire faites le moi savoir s'il vous plait en postant vos exemples de programmation
merci
A voir également:
- Grouper les donnees provenant d'une requete
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Que veut dire supprimer les données d'une application - Guide
- Sauvegarde des données - Guide
1 réponse
Bonjour,
Prenons l'analyse suivante :
Nous désirons avoir la somme des achats des clients et leur nombre d'achats.
En SQL nous aurions :
et
Avec Windev 2 options s'offrent à toi :
-Gérer ces requêtes en "mode texte" dans ton code via SQLExec (https://doc.pcsoft.fr/fr-FR/?3072007&name=SQLExec&verdisp=180%29
-Utiliser l'éditeur de requêtes.
Pour cela il faut créer une nouvelle requête (Nouveau/Requête).
Tu as 6 options disponibles :
Select, SQL, Ajout, Union, Modification et Suppression.
Nous nous intéresserons à l'option Select.
Dans la zone 1 sélectionne les colonnes désirées et place les dans la zone 2 soit via un double clic, soit via les flèches (6)
Une fois cela fait sélectionne dans la zone 2 la colonne sur laquelle tu veux faire le calcul. FACTURE_CLIENT.Total (resp FACTURE_CLIENT.PK_FACTURE_CLIENT.)
La zone 3 sert à affiner la recherche. Il suffit de sélectionner Somme (resp compter), la modification se fait en zone 2.
Tu peux modifier si tu le désire le nom des colonnes qui sera utilisé(le AS dans SQL) via la zone 4.
Dans la zone 5, tu as la description de ta requête en langage naturel ou en SQL.
On valide et ta requête est disponible. Tu pourras la tester via le "GO".
Cerise sur le gâteau.Tu désires voir apparaître les clients qui n'ont pas de factures.
En SQL tu écrirais :
Avec Windev :
Un double clic sur "Jointure" et il suffit de cocher la case qui va bien.
Prenons l'analyse suivante :

Nous désirons avoir la somme des achats des clients et leur nombre d'achats.
En SQL nous aurions :
SELECT CLIENTS.PK_CLIENT AS CLIENT, CLIENTS.NDX_NomClient AS Nom, SUM(FACTURE_CLIENTS.Total) AS SommeDesAchats FROM CLIENTS, FACTURE_CLIENTS WHERE CLIENTS.PK_CLIENT = FACTURE_CLIENTS.FK_CLIENT GROUP BY CLIENTS.PK_CLIENT, CLIENTS.NDX_NomClient ORDER BY PK_CLIENT ASC
et
SELECT CLIENTS.PK_CLIENT AS CLIENT, CLIENTS.NDX_NomClient AS Nom, COUNT(FACTURE_CLIENTS.PK_FACTURE_CLIENTS) AS NbFacture FROM CLIENTS, FACTURE_CLIENTS WHERE CLIENTS.PK_CLIENT = FACTURE_CLIENTS.FK_CLIENT GROUP BY CLIENTS.PK_CLIENT, CLIENTS.NDX_NomClient ORDER BY CLIENT ASC
Avec Windev 2 options s'offrent à toi :
-Gérer ces requêtes en "mode texte" dans ton code via SQLExec (https://doc.pcsoft.fr/fr-FR/?3072007&name=SQLExec&verdisp=180%29
-Utiliser l'éditeur de requêtes.
Pour cela il faut créer une nouvelle requête (Nouveau/Requête).
Tu as 6 options disponibles :
Select, SQL, Ajout, Union, Modification et Suppression.
Nous nous intéresserons à l'option Select.

Dans la zone 1 sélectionne les colonnes désirées et place les dans la zone 2 soit via un double clic, soit via les flèches (6)
Une fois cela fait sélectionne dans la zone 2 la colonne sur laquelle tu veux faire le calcul. FACTURE_CLIENT.Total (resp FACTURE_CLIENT.PK_FACTURE_CLIENT.)
La zone 3 sert à affiner la recherche. Il suffit de sélectionner Somme (resp compter), la modification se fait en zone 2.
Tu peux modifier si tu le désire le nom des colonnes qui sera utilisé(le AS dans SQL) via la zone 4.
Dans la zone 5, tu as la description de ta requête en langage naturel ou en SQL.
On valide et ta requête est disponible. Tu pourras la tester via le "GO".
Cerise sur le gâteau.Tu désires voir apparaître les clients qui n'ont pas de factures.
En SQL tu écrirais :
SELECT CLIENTS.PK_CLIENT AS CLIENT, CLIENTS.NDX_NomClient AS Nom, SUM(FACTURE_CLIENTS.Total) AS SommeDesAchats FROM CLIENTS LEFT OUTER JOIN FACTURE_CLIENTS ON CLIENTS.PK_CLIENT = FACTURE_CLIENTS.FK_CLIENT GROUP BY CLIENTS.PK_CLIENT, CLIENTS.NDX_NomClient ORDER BY PK_CLIENT ASC
Avec Windev :

Un double clic sur "Jointure" et il suffit de cocher la case qui va bien.