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 :

Problème avec requête ventes / produits


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Par défaut Problème avec requête ventes / produits
    Bonjour à tous,


    Je suis un petit nouveau dans la communauté SQL, et je découvre petit a petit le fonctionnement de cet outil.

    Je souhaite créer une requête pour mon travail, me permettant de tirer les ventes de produits sur une période donnée.

    J'ai réussi a créer un début de requête, j'ai juste un petit problème : les lignes identiques ne s'additionnent pas et s'affichent donc autant de fois qu'il y a de quantités vendues.

    Comment faire pour regrouper les lignes avec le même code produit ou le même intitulé ?

    Par exemple, si j'ai vendu 4 fois le même produit j'aurais 4 ligne avec 1 en quantités vendues.
    Comment faire pour avoir une seule ligne avec 4 en quantités vendues ??

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select histo_ventes.cdpdt,histo_ventes.cdfam,qtevendu, libpdt 
    from histo_ventes , produit 
    where dtvaleur >= '20090601'
    and dtvaleur <= '20090701'
    and produit.cdfam = '231' 
    and cdsite = 'LPA'
    and histo_ventes.cdpdt = produit.cdpdt;
    Par avance merci de votre aide.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Svodoll Voir le message
    Je suis un petit nouveau dans la communauté SQL, et je découvre petit a petit le fonctionnement de cet outil.
    Précision, c'est un langage, pas un outil !

    Pour votre requête, regardez ce cours sur les agrégats :
    http://sqlpro.developpez.com/cours/sqlaz/ensembles/

    De manière générale, n'hésitez pas à lire et relire tout le cours SQL du forum :
    http://sql.developpez.com/

    Et bienvenue !

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Par défaut
    GROUP BY <nom_produit> ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Par défaut
    Citation Envoyé par adrienbcn Voir le message
    GROUP BY <nom_produit> ?
    Ben j'avais déjà tenté avec ca mais ca me sort un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select histo_ventes.cdpdt,histo_ventes.cdfam,qtevendu, libpdt 
    from histo_ventes , produit 
    group by libpdt
    where dtvaleur >= '20090601'
    and dtvaleur <= '20090701'
    and produit.cdfam = '231' 
    and cdsite = 'LPA'
    and histo_ventes.cdpdt = produit.cdpdt
    Incorrect syntax near the keyword 'where'.

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Par défaut
    Le group by doit-être tout à la fin de ta requete (Après tes clauses WHERE tout du moins)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select histo_ventes.cdpdt,histo_ventes.cdfam,qtevendu, libpdt 
    from histo_ventes , produit 
    where dtvaleur >= '20090601'
    and dtvaleur <= '20090701'
    and produit.cdfam = '231' 
    and cdsite = 'LPA'
    and histo_ventes.cdpdt = produit.cdpdt
    group by libpdt

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Et puisque Svodoll est nouveau en SQL, autant lui donner les bonnes habitudes tout de suite !
    Les jointures s'écrivent depuis 1992 avec l'opérateur JOIN !

    Il vaut mieux utiliser BETWEEN que >= et =<.

    Les dates sont normalement formatées de la manière suivante : 'aaaa-mm-jj'.

    Un GROUP BY sans fonction d'agrégation dans le SELECT, pas terrible !
    Dans votre cas puisque :
    les lignes identiques ne s'additionnent pas
    C'est qu'il manque l'opération d'addition SUM.

    Et toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction d'agrégation doivent figurer dans le GROUP BY.

    La requête récrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT DISTINCT histo_ventes.cdpdt, histo_ventes.cdfam, SUM(histo_ventes.qtevendu) AS Somme, libpdt 
    FROM histo_ventes
    INNER JOIN produit ON histo_ventes.cdpdt = produit.cdpdt
    WHERE dtvaleur BETWEEN '2009-06-01' AND '2009-07-01'
      AND produit.cdfam = '231' 
      AND cdsite = 'LPA'
    GROUP BY libpdt, histo_ventes.cdpdt, histo_ventes.cdfam
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Par défaut
    Un grand merci a vous tous pour vos réponses rapides et surtout efficaces !!

    La requête fonctionne parfaitement. Cela donne vraiment envie de se mettre plus en profondeur dans SQL. je vais de ce pas me lancer dans la lecture complète des différents tutoriaux dispo sur le site.

    Par contre, petite question : J'ai fais cette requête pour mes besoins perso au boulot. Notre service info est trop débordé pour nous faire des requêtes a la demande. Le service informatique ne veux pas forcement me donner les clefs pour que je fasse mes propres requêtes. J'ai donc du faire avec les moyens du bord... Y-a-t-il un moyen détourné de les obtenir ?

    Par exemple si je veux ajouter la notion de stock dans ma requête, comment puis-je trouver seul la clef pour les stocks ?

Discussions similaires

  1. [HSQLDB]Problèmes avec requête
    Par Baptiste Wicht dans le forum JDBC
    Réponses: 7
    Dernier message: 06/06/2006, 22h28
  2. Problèmes avec Requêtes d'extraction
    Par NoBru dans le forum Access
    Réponses: 3
    Dernier message: 03/06/2006, 15h25
  3. Problème avec requête ajout
    Par teffal dans le forum Access
    Réponses: 3
    Dernier message: 29/04/2006, 16h41
  4. Problème avec requête ajout
    Par mitnick32 dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2006, 18h02
  5. [VB6] Problème avec requête Update
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2006, 03h40

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