IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Correction d'une requête


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut Correction d'une requête
    bonjour
    cette requete marche bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT t1.*, (SELECT SUM(t2.id_qte) FROM associationdepotarticle t2 WHERE t1.fusiontable = t2.fusiontable) as id_qte FROM articletable t1";
    mais une fois je veux ajouter Group by:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT t1.*, (SELECT SUM(t2.id_qte) FROM associationdepotarticle t2 WHERE t1.fusiontable = t2.fusiontable) as id_qte FROM articletable t1 GROUP BY t2.id_bonreception";

    cela ne marche pas, quelqu'un peut m'aider, j'ai besoin de cette correction SVP

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 805
    Points
    30 805
    Par défaut
    1. Toutes les colonnes qui ne font pas l'objet d'une fonction de regroupement doivent être reprises dans la clause GROUP BY.
    2. Les colonnes d'une sous-requête qui n'apparaissent pas dans la clause SELECT de celle-ci ne sont pas visibles à l'extérieur de cette sous-requête.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    Merci pour votre reponse

    j'ai donc fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT t1.*, t2.id_bonreception, (SELECT SUM(t2.id_qte) FROM associationdepotarticle t2 WHERE t1.fusiontable = t2.fusiontable) as id_qte FROM articletable t1, associationdepotarticle t2";
    Nom : Sans titre-2.jpg
Affichages : 168
Taille : 25,0 Ko

    dans la base de données j'ai 2 tables nom_table et quantite_table

    dans la table nom j'ai deux nom:
    chawarma et khoubz

    mais dans la table quantite_table j'ai trois lignes

    chawarma = 1
    khoubz = 1
    chawarma = 1

    le nombre represente la quantité

    ma requete retourne la somme 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mais cela n'est pas ce que je veux, je veux que
    chawarma = 2
     
    et
     
    khoubz = 1
    si je fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    sql = "SELECT t1.*, t2.id_bonreception, (SELECT SUM(t2.id_qte) FROM associationdepotarticle t2 WHERE t1.fusiontable = t2.fusiontable GROUP BY t2.id_bonreception) as id_qte FROM articletable t1, associationdepotarticle t2";
    il me donne

    chawarma = 2
    chawarma = 2
    chawarma = 2
    khoubz = 2
    khoubz = 2
    khoubz = 2

    sérieux je ne sais pas quoi faire et j'ai besoin d'aide

    Merci d'avance

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    regarde j'ai fait le teste sur la table quantité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT SUM(id_qte) as totalamount, id_article FROM associationdepotarticle GROUP BY document";
    elle fonctionne tres bien elle me donne les noms et la quantite mais une fois j'ajoute INNER join pour joindre les nom des articles ça ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT t1.*, SUM(t2.id_qte) as totalamount FROM articletable t1 INNER JOIN associationdepotarticle t2 ON t1.fusiontable = t2.fusiontable  GROUP BY t2.document";
    bon j'ai ajouter des champ pour que je reste pas coincer et pour que je teste histoire de t'attendre jusqu'au voir ta reponse mais le principe c'est le meme

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    Nom : Sans titre-1.jpg
Affichages : 156
Taille : 15,4 Ko

    regarde j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT t1.*, SUM(t2.id_qte) as totalamount FROM articletable t1 INNER JOIN associationdepotarticle t2 ON t1.fusiontable = t2.fusiontable GROUP BY t1.designation, t2.id_bonreception";

    ça marche mais pourquoi j'ai 4 ligne deux chawarma et deux khoubz -_-

    normalment c'est juste deux lignes

    chawarma = 2

    et khoubz = 1

    comment je peux faire SVP ?

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    toujours sans succes

    afin de te montrer ce que je fais voici tout ma base:

    Nom : Sans titre-1.jpg
Affichages : 263
Taille : 104,6 Ko

    là j'ai tout fait, c'est juste la partie consultation qui m'interesse

    car il se peut que j'ai plusieur article dans la table article mais un peu d'article qui ont le nombre de quantite dans le depot les autres c'est quantiuté = 0
    Images attachées Images attachées  

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Lisez la phrase en bleu de ma signature et appliquez son principe !

    Que cherchez vous à obtenir ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Correction d'une requête qui affiche un pourcentage
    Par doudou2015 dans le forum Langage SQL
    Réponses: 23
    Dernier message: 05/06/2015, 02h00
  2. [MySQL] Requête invalide venant d'une requête SQL correcte
    Par daplayzz dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 22/04/2009, 15h35
  3. correction d'une requête (jpa ql)
    Par chflb dans le forum JPA
    Réponses: 11
    Dernier message: 17/08/2008, 18h16
  4. Besoin d'une correction sur une requête
    Par Nessie37 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/12/2007, 18h47
  5. [MySQL] Afficher une date correctement après une requête
    Par Nerva dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/04/2006, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo