SQL group by avec plusieurs conditions
Fermé
fredoalex
-
Modifié le 21 févr. 2018 à 09:56
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 févr. 2018 à 10:33
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 févr. 2018 à 10:33
A voir également:
- Group by plusieurs colonnes sql
- Word colonnes indépendantes - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Blob sql ✓ - Forum Webmastering
- Home by me - Télécharger - 3D
- Récupération serveur sql - Télécharger - Gestion de données
3 réponses
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
20 févr. 2018 à 16:34
20 févr. 2018 à 16:34
bonjour, comme plusieurs tables ont un champ nommé grplib, je suggère de partout mettre le nom de la table devant le nom du champ.
quand tu écris "seul la première condition est groupé", veux-tu dire que tu obtiens plusieurs lignes avec les mêmes valeurs pour les deux champs?
quand tu écris "seul la première condition est groupé", veux-tu dire que tu obtiens plusieurs lignes avec les mêmes valeurs pour les deux champs?
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
21 févr. 2018 à 09:55
21 févr. 2018 à 09:55
Bonjour,
Déjà... que font ces guillemets autour du nom de tes tables / champs dans ta requête ?
Soit tu n'en met pas (et c'est très bien comme ça....) soit tu utilises des "back-quotes" => `comme_ca`
Ensuite.. au lieu de repeter le "nom des tables" ... il existe un truc super pratique.... les ALIAS.
Par exemple :
A utiliser sans modération.... (sauf pour les requêtes DELETE pour lesquelles ça ne fonctionne pas)
Déjà... que font ces guillemets autour du nom de tes tables / champs dans ta requête ?
Soit tu n'en met pas (et c'est très bien comme ça....) soit tu utilises des "back-quotes" => `comme_ca`
Ensuite.. au lieu de repeter le "nom des tables" ... il existe un truc super pratique.... les ALIAS.
Par exemple :
SELECT T.champ1, T.champ2 FROM matable T ...
A utiliser sans modération.... (sauf pour les requêtes DELETE pour lesquelles ça ne fonctionne pas)
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
21 févr. 2018 à 09:57
21 févr. 2018 à 09:57
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 févr. 2018 à 10:33
26 févr. 2018 à 10:33
Bonjour,
De quel type est Bledatl ?
Est-ce vraiment juste la date, ou contient-il l'heure ? Cela expliquerait que des valeurs apparemment identiques ne le soient, en fait, pas.
Xavier
De quel type est Bledatl ?
Est-ce vraiment juste la date, ou contient-il l'heure ? Cela expliquerait que des valeurs apparemment identiques ne le soient, en fait, pas.
Xavier
20 févr. 2018 à 17:00
Voici un exemple de ce que j'obtiens
Bledatl Grplib Nb_lignes total Nb_ lignes en avance Nb lignes à l'heure Nb lignes en retard
02/02/18 client1 100 20 50 30
02/02/18 client2 100 20 50 30
02/02/18 client3 100 20 50 30
03/02/18 client1 150 70 70 10
03/02/18 client2 150 70 70 10
03/02/18 client3 150 70 70 10
Ainsi dans ma condition Group By seul le critère "Bledatl" est pris en compte alors que souhaite voir les chiffre par date (Bledatl) puis par client (Grplib).
J espère que j'ai été plus claire
Modifié le 20 févr. 2018 à 17:44
as-tu suivi ma suggestion je suggère de partout mettre le nom de la table devant le nom du champ grplib?
dans quelles tables se trouve grplib?
et dans quelles tables se trouvent les champs dont tu fais des count?
21 févr. 2018 à 08:20
Oui effectivement il faut que chaque ligne soit spécifique à chaque date et client.
Oui j'ai essayer de mettre les nom de table avant le nom de champ mais ça n'a rien changé.
Ils se trouvent sur les tables Fac_coment, fac_bldet et fac_blent
Modifié le 21 févr. 2018 à 09:48
que donne le select avec uniquement les trois premieres valeurs?
je pense que la réponse nous permettra de déterminer si le problème est dans le FROM ou bien avec les trois derniers counts.