Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 23h18   #1
Nouveau Membre du Club
 
Avatar de ToxiK
 
Charly
Inscription : juin 2006
Messages : 117
Détails du profil
Informations personnelles :
Nom : Charly

Informations forums :
Inscription : juin 2006
Messages : 117
Points : 26
Points : 26
Par défaut Tous les ID dans une requête avec SUM

Bonjour,

je cherche à faire une requête, ou du moins à trouver une autre solution si ce n'est pas possible.

Il faudrait que je récupérer tous les ID des lignes contenu dans mon GROUP BY.

Ma requête ressemble à ça :
Code :
1
2
3
4
SELECT date_paiement, personne FROM facture 
WHERE 
GROUP BY date_paiement, personne 
HAVING SUM(montant) = 750

Si je rajoute ID dans le SELECT, je suis obligé de le rajouté dans le GROUP BY, du coup je fais mon test sur une seule ligne à chaque fois (car les ID sont uniques, du coup j'ai des groupes de une lignes)


Y a-t-il un moyen de récupérer les ID compris dans le "groupe" ou non ?
ToxiK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 06h44   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Oui, en sortant des standards SQL avec GROUP_CONCAT
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 09h04   #3
Membre régulier
 
Homme Julien SIMON
Ingénieur systèmes et réseaux
Inscription : février 2006
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Julien SIMON
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Transports

Informations forums :
Inscription : février 2006
Messages : 100
Points : 99
Points : 99
Bonjour,

une autre solution est d'utiliser votre requête comme sous requête :


Code :
1
2
3
4
5
6
7
8
 
SELECT id_facture, date_paiement, personne
FROM 
(SELECT date_paiement, personne FROM facture 
WHERE 
GROUP BY date_paiement, personne 
HAVING SUM(montant) = 750) TableFacture t
LEFT JOIN facture f ON f.date_paiement = t.date_paiement AND f.personne = t.personne
MightyDucks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 18h56   #4
Nouveau Membre du Club
 
Avatar de ToxiK
 
Charly
Inscription : juin 2006
Messages : 117
Détails du profil
Informations personnelles :
Nom : Charly

Informations forums :
Inscription : juin 2006
Messages : 117
Points : 26
Points : 26
Merci beaucoup pour vos réponses,

je dois retranscrire ça en W-Language sur Windev, je vais voir si il y a un équivalent de GROUP_CONCAT,

sinon d'adapter ma requête avec le système de sous-requête.


Et tout cas merci
ToxiK est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web