[challenge] [résolu] Requete SQL galere
12 messages
• Page 1 sur 1
- ZoRRo75
- WRInaute discret

- Messages: 204
- Inscription: 11 Mar 2004
[challenge] [résolu] Requete SQL galere
Hello,
J'ai une requete sur laquelle je bute depuis un bon moment... j'utilise MySQL 4.1 (je peux pas upgrader) et je ne sais meme pas si c'est possible avec cette version.
Je fais donc appel aux Pros qui sont dans la place...
Voila la structure de ma table : REGLEMENTS : ID/TYPE/MONTANT/PERSONNE
les enregistrements de la table ont 2 types possibles : IMPAYE ou REGLEMENT et ont toutes un montant.
Je voudrais connaitre le nombre de PERSONNES , où la somme des reglements est inferieure à la somme des impayes (balance negative).
j'arrive a avoir la liste des enregistrements concernés :
mais impossible d'avoir directement le nombre de lignes avec un
car ca me fait n lignes avec "1"...je suis paumé...
surement que la structure de la table n'est pas idéale, mais ce n'est pas la question (suggestions bienvenues)
c'est une solution 'pure SQL' que je cherche, pas du PHP...merci
J'ai une requete sur laquelle je bute depuis un bon moment... j'utilise MySQL 4.1 (je peux pas upgrader) et je ne sais meme pas si c'est possible avec cette version.
Je fais donc appel aux Pros qui sont dans la place...
Voila la structure de ma table : REGLEMENTS : ID/TYPE/MONTANT/PERSONNE
les enregistrements de la table ont 2 types possibles : IMPAYE ou REGLEMENT et ont toutes un montant.
Je voudrais connaitre le nombre de PERSONNES , où la somme des reglements est inferieure à la somme des impayes (balance negative).
j'arrive a avoir la liste des enregistrements concernés :
- Code: Tout sélectionner
SELECT REGLEMENTS.PERSONNE FROM REGLEMENTS group by REGLEMENTS.PERSONNE having (SUM(IF(REGLEMENTS.TYPE = 'REGLEMENT', MONTANT,0))<SUM(IF(REGLEMENTS.TYPE = 'IMPAYE', MONTANT,0)))
mais impossible d'avoir directement le nombre de lignes avec un
- Code: Tout sélectionner
SELECT COUNT(DISTINCT REGLEMENTS.PERSONNE)...
car ca me fait n lignes avec "1"...je suis paumé...
surement que la structure de la table n'est pas idéale, mais ce n'est pas la question (suggestions bienvenues)
c'est une solution 'pure SQL' que je cherche, pas du PHP...merci
Dernière édition par ZoRRo75 le Jeu Jan 05, 2006 18:16, édité 2 fois.
-

bgdc - WRInaute impliqué

- Messages: 723
- Inscription: 23 Mai 2005
Bjr,
je ne suis pas sur d'avori tout compris, mais si tu veux la personne et le nombre ds ta table du genre
AAAA : 12
BBBBB : 23
etc.....
tu peux essayer ca :
Bon courage.
je ne suis pas sur d'avori tout compris, mais si tu veux la personne et le nombre ds ta table du genre
AAAA : 12
BBBBB : 23
etc.....
tu peux essayer ca :
- Code: Tout sélectionner
SELECT REGLEMENTS.PERSONNE,COUNT(*)
FROM REGLEMENTS
GROUP BY REGLEMENTS.PERSONNE;
Bon courage.
-

Baronz - WRInaute occasionnel

- Messages: 299
- Inscription: 28 Avr 2005
Oula
Cela marche en Oracle maintenant en PHP j'ai pas testé :S
Tu fais simplement un COUNT sur ta requete non ?
- Code: Tout sélectionner
SELECT COUNT(SELECT REGLEMENTS.PERSONNE FROM REGLEMENTS group by REGLEMENTS.PERSONNE having (SUM(IF(REGLEMENTS.TYPE = 'REGLEMENT', MONTANT,0))<SUM(IF(REGLEMENTS.TYPE = 'IMPAYE', MONTANT,0))));
Cela marche en Oracle maintenant en PHP j'ai pas testé :S
Tu fais simplement un COUNT sur ta requete non ?
- ZoRRo75
- WRInaute discret

- Messages: 204
- Inscription: 11 Mar 2004
oulala comme tu dis
ta soluce marche pas, ca me donne N lignes avec le nombre de lignes pour chaque personne...
utiliser COUNT(DISTINCT(REGLEMENTS.PERSONNE)) est deja mieux : ca me fait N lignes avec '1' a chaque fois, mais je n'arrive pas à récuperer ce nombre de lignes en SQL directement... ce que je veux récuperer, c'est ce N simplement (1 ligne avec marqué N dedans...)
thanx anyway....
bug MySQL ou dans ma ptite tete ???
ta soluce marche pas, ca me donne N lignes avec le nombre de lignes pour chaque personne...
utiliser COUNT(DISTINCT(REGLEMENTS.PERSONNE)) est deja mieux : ca me fait N lignes avec '1' a chaque fois, mais je n'arrive pas à récuperer ce nombre de lignes en SQL directement... ce que je veux récuperer, c'est ce N simplement (1 ligne avec marqué N dedans...)
thanx anyway....
bug MySQL ou dans ma ptite tete ???
-

Baronz - WRInaute occasionnel

- Messages: 299
- Inscription: 28 Avr 2005
Rajoute un peu le FROM dans ma requète
Si ton résultats est correct et que tu veux simplement le nombre de ligne, un SELECT COUNT(...) FROM devrait te donner le bon résultats.
http://dev.mysql.com/doc/refman/5.0/fr/views.html
Apparement on peux créer des vues sous mysql :O
J'en apprend tous les jours
Créé donc un vue
Avec ta première requète
Et tu fais un Select sur ta vue
Cela dis il y à certainement moyen de faire autrement ^^
Si ton résultats est correct et que tu veux simplement le nombre de ligne, un SELECT COUNT(...) FROM devrait te donner le bon résultats.
http://dev.mysql.com/doc/refman/5.0/fr/views.html
Apparement on peux créer des vues sous mysql :O
J'en apprend tous les jours
Créé donc un vue
Avec ta première requète
Et tu fais un Select sur ta vue
- Code: Tout sélectionner
SELECT COUNT(*) FROM TAVUE;
Cela dis il y à certainement moyen de faire autrement ^^
-

Baronz - WRInaute occasionnel

- Messages: 299
- Inscription: 28 Avr 2005
- Code: Tout sélectionner
SELECT COUNT(*)
FROM reglements
WHERE id IN (
SELECT id
FROM reglements
GROUP BY personne having (SUM(IF(REGLEMENTS.TYPE = 'REGLEMENT', MONTANT,0))<SUM(IF(REGLEMENTS.TYPE = 'IMPAYE', MONTANT,0))))
12 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- un requête sql [Résolu]
- [Résolu] Requete SQL
- [résolu][sql] Requête avec WHERE
- [Résolu] PB requete SQL 3 tables + 2 count
- [résolu] Nombres arrondis suite à requête SQL
- [RESOLU] Requête SQL sur condition aléatoire
- [résolu] Demande d'aide pour une requête sql
- [Résolu] 2 requêtes en une seule je galère
- Requête SQL ?
- requête sql help!!
- Google API : guide de développement de l'API Google - 20-09-2002
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- SearchMonkey : Yahoo ouvre sa plateforme de recherche - 15-05-2008
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Stratégies financières sur l'évolution de l'architecture Google - 26-11-2005
- Informations sur l'infrastructure technique de Google - 01-11-2004
- Google Android SDK : le kit de développement pour la plateforme de téléphone mobile Android - 13-11-2007
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
