[challenge] [résolu] Requete SQL galere

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ZoRRo75, 5 Janvier 2006.

  1. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    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 :

    Code:
    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:
    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
     
  2. bgdc
    bgdc WRInaute impliqué
    Inscrit:
    23 Mai 2005
    Messages:
    536
    J'aime reçus:
    0
    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 :

    Code:
    SELECT REGLEMENTS.PERSONNE,COUNT(*)    
    FROM REGLEMENTS
    GROUP BY REGLEMENTS.PERSONNE;    
    Bon courage.
     
  3. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    merci de ton aide mais c'est bien plus compliqué :

    je veux le nombre de personnes qui ont une balance négative (pas la liste, ca je l'ai deja)

    thx anyway

    HELP please, j'ai bientot plus de cheveux
     
  4. Baronz
    Baronz WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    246
    J'aime reçus:
    0
    Oula

    Code:
    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 ?
     
  5. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    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 ???
     
  6. Baronz
    Baronz WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    246
    J'aime reçus:
    0
    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

    Code:
    SELECT COUNT(*) FROM TAVUE;
    Cela dis il y à certainement moyen de faire autrement ^^
     
  7. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    ok, merci, mais comme précisé plus haut, ca doit tourner imperativement sous mysql 4.1...

    si seulement je pouvais upgrader...
     
  8. Baronz
    Baronz WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    246
    J'aime reçus:
    0
    Code:
    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))))
    
     
  9. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    wow

    i thing you're the boss !!

    tu as gagné une sacré biere !

    i'm impressed ;))

    tu as un outil pour faire des requetes ou c'est 'mental' ?

    thanx a lot

    je vais tenter d'integrer cela...
     
  10. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    Bravo...

    c'est intégré et ca marche a merveille sur ma MySQL 4.1...

    les gars si vous avez un prob sur SQL, demandez à Baronz...

    pouf...

    quand tu veux pour la bière mais je pense que tu as ce qu'il faut chez toi ;))
     
  11. Baronz
    Baronz WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    246
    J'aime reçus:
    0
    lol c'est rien hin
    Nan pas de programme dsl
    J'ai des cours de SQL aucun mérite ^^
     
  12. ZoRRo75
    ZoRRo75 WRInaute discret
    Inscrit:
    11 Mars 2004
    Messages:
    189
    J'aime reçus:
    0
    qd meme c du beau...

    je pense jamais au subselect, mon cerveau est formaté pour MySQL < 4.1

    THANX MAN
     
Chargement...
Similar Threads - [challenge] [résolu] Requete Forum Date
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017
[résolu] Passage à HTTPS, comment tester une page ? Développement d'un site Web ou d'une appli mobile 7 Septembre 2017
[Résolu] Redirection d'une famille d'URL URL Rewriting et .htaccess 9 Mars 2017
[Résolu] Diaporama et SEO Débuter en référencement 17 Janvier 2017
[résolu]Redirection monsite.fr/index.html sur monsite.fr et seo URL Rewriting et .htaccess 16 Janvier 2017
[resolu]Publicité facebook lié au compte instagram Facebook 12 Décembre 2016
[résolu] Récupérer des valeurs issues de javascript pour les mettre en base MySQL Développement d'un site Web ou d'une appli mobile 18 Juillet 2016
[résolu] Faire une redirection sauf pour mon adresse IP URL Rewriting et .htaccess 15 Juin 2016
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016
[résolu] Action onchange sur FORM/SELECT qui ne fonctionne qu'à la première action ?!? Développement d'un site Web ou d'une appli mobile 31 Mai 2016
[résolu] Sessions : lire le contenu alors qu'on ne sait pas comment il est nommé... Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Avoir un paramètre de session "dynamique" ? Développement d'un site Web ou d'une appli mobile 25 Mai 2016
[résolu] Hauteur de div selon état d'un bouton radio Développement d'un site Web ou d'une appli mobile 23 Mai 2016
[résolu] recupération de flux xml et erreur encodage des caractères Développement d'un site Web ou d'une appli mobile 27 Janvier 2016
[résolu] Carte Google Maps avec "zones de densité" Développement d'un site Web ou d'une appli mobile 5 Novembre 2015
Balise NoIndex ignorée par Google? [résolu] Débuter en référencement 13 Janvier 2015
[Résolu] sites référents sans lien vers mon site Demandes d'avis et de conseils sur vos sites 7 Janvier 2015
Lorsqu'on a créé un site, faut-il mettre un lien vers son site dans le footer ? [Résolu] Débuter en référencement 31 Décembre 2014
[RESOLU] recuperer valeur d'un champ en js Développement d'un site Web ou d'une appli mobile 17 Décembre 2014