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

Requêtes MySQL Discussion :

Problème réquête SQL


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Débutant
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème réquête SQL
    Bonjour à tous,

    j ai un problème sur une requête.

    J'ai plusieurs lignes avec le même id_order je cherche à afficher dans une colonne la somme des product_quantity de chaque id_order.

    j ai fait cela mais j ai un problème à la ligne en commentaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    SELECT o.`id_order` AS `id`,
    CONCAT(LEFT(c.`firstname`, 1), '. ', c.`lastname`) AS `Customer`,
    ca.`name` AS `Carrier`,
    cu.`name` AS `Currency`,
    od.`product_quantity`,
    od.`unit_price_tax_excl`,
    o.`date_add` AS `Date`,
    od.`product_id`,
    od.`product_name`,
    od.`product_weight`,
    od.`product_supplier_reference`,
    oc.`shipping_cost_tax_excl`,
    ps.`product_supplier_price_te`, 
     
    /*(SELECT(SUM(product_quantity) FROM  `ma_order_detail` GROUP BY  id_order)),*/
     
       (od.`unit_price_tax_excl` * od.`product_quantity`)+(oc.`shipping_cost_tax_excl` - (ps.`product_supplier_price_te` * od.`product_quantity`)) AS BENEFIT   
     
    FROM `ma_orders` o
    LEFT JOIN `ma_customer` c ON (o.`id_customer` = c.`id_customer`)
    LEFT JOIN `ma_carrier` ca ON (o.id_carrier = ca.id_carrier)
    LEFT JOIN `ma_currency` cu ON (o.`id_currency` = cu.`id_currency`)
    LEFT JOIN `ma_order_detail` od ON (o.`id_order` = od.`id_order`)
    LEFT JOIN `ma_order_carrier` oc ON (o.`id_order` = oc.`id_order`)
    LEFT JOIN `ma_product_supplier` ps ON (od.`product_supplier_reference` = ps.`product_supplier_reference`)
    WHERE o.`date_add`>'2016-07-01 00:00:00'
    voici le message d'erreur

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `ma_order_detail` )), (od.`unit_price_tax_excl` * od.`product_quantity' at line 16

    je bloque donc je demande votre aide.

    merci à tous.

    Quickman

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut quickman26.

    1) la présentation de votre message n'est pas conforme à la politique de ce forum.
    Mettez le code entre les balises bbcode : [ code ] ... [ /code ]

    2) il y a bien une erreur de syntaxe dans votre requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT(SUM(product_quantity) FROM `ma_order_detail` GROUP BY id_order)),
    il y a un niveau de parenthèse qui n'a pas lieu d'être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT SUM(product_quantity) FROM `ma_order_detail` GROUP BY id_order),
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Débutant
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Débutant
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci Artemus24

    1) je viens de rajouter [ code ]

    2) effectivement à force de faire des modifs j'avais mis une parenthèse en trop. Par contre cela ne fonctionne toujours pas et me renvoi une autre erreur : #1242 - Subquery returns more than 1 row
    pourtant la requête seule fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM(`product_quantity`) 
    FROM `ma_order_detail` 
    GROUP BY `id_order`
    A+
    Quickman

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut quickman26.

    Citation Envoyé par quickman26
    1) je viens de rajouter [ code ]
    Je te remercie d'avoir mis en forme ton message.

    Citation Envoyé par quickman26
    2) Par contre cela ne fonctionne toujours pas et me renvoi une autre erreur : #1242 - Subquery returns more than 1 row
    Le message d'erreur est pourtant clair. La sous-requête te retourne plus de une ligne.

    Citation Envoyé par quickman26
    pourtant la requête seule fonctionne
    Elle fonctionne, c'est une chose, mais elle te retourne plus de une ligne.
    Sinon, comment vas-tu faire pour mettre plusieurs valeurs dans une et une seule colonne et ta ligne ?

    Pour résoudre ce problème, il faut faire une corrélation entre ta sous-requête et la requête principale afin de récupérer que la somme pour la valeur courante de la colonne "id_order".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT SUM(od.product_quantity) FROM od_order_detail as od where od.id_order = o.id_order),
    --> http://mirror.metrocast.net/mysql/do...ubqueries.html

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. problème de resultat de réquête sql avec jointure
    Par waritigui dans le forum MySQL
    Réponses: 2
    Dernier message: 16/10/2015, 15h38
  2. problème de resultat de réquête sql avec jointure
    Par waritigui dans le forum MkFramework
    Réponses: 19
    Dernier message: 15/10/2015, 12h12
  3. Problème réplication SQL Server et SQL Server CE (RDA)
    Par didix11 dans le forum Réplications
    Réponses: 2
    Dernier message: 15/04/2004, 11h10
  4. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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