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 :

probleme de requete sql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut probleme de requete sql
    bonjour
    j'essaye d'afficher le nom de chaque collaborateur avec son numero de poste les le coutttc des appels avec cette requete mais j'arrive pas il y a des erreurs apparemment
    voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " SELECT c.nom,sum(p.coutTTC) FROM Collaborateur c , Poste s , Appel p where c.identifiant=s.id_Collaborateur and s.identifiant = p.id_Poste from appel,poste,collaborateur group by c.identifiant";
    voici les tables
    Collaborateur (identifiant, nom, prénom, userid, password, travail, tel, mail, id_entite)
    Appel (identifiant, id_Poste, id_Telephone, id_Destinataire, date_debut, date_fin, type_jour_debut, type_jour_fin, duree, coutHT, coutTTC)
    Poste (identifiant, numéro, id_Collaborateur)
    en sachant que le collaborateur a un ou plusieurs poste et le poste appartient
    a un seul collaborateur et le poste peut effectuer zero ou plusieurs apells

    merci

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Groupez votre resultat avec les colones présentes dans votre select, cela devrait resoudre le probleme

    Bon courage

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    vous faites deux from dans votre requête...
    Si au moins vous aviez indenté votre requête votre erreur vous aurais sauté aux yeux !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT c.nom,sum(p.coutTTC) 
    FROM Collaborateur c , Poste s , Appel p 
    where c.identifiant=s.id_Collaborateur and s.identifiant = p.id_Poste 
    from appel,poste,collaborateur group by c.identifiant
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut
    merci d'avoir repondu j'ai enlevee le dexieme from et ca marche pas encore
    voici le message qui s'affiche"Informations supplémentaires*: La colonne 'Collaborateur.nom' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY." quand j execute cette requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " SELECT c.nom,sum(p.coutTTC) FROM Collaborateur c , Poste s , Appel p where c.identifiant=s.id_Collaborateur and s.identifiant = p.id_Poste group by c.identifiant";
    merci

  5. #5
    Membre éclairé Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Par défaut
    Il faut mettre les champs sélectionnés (sauf opération je crois) dans le GROUP BY

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT c.nom,sum(p.coutTTC) 
    FROM Collaborateur c , Poste s , Appel p 
    WHERE c.identifiant=s.id_Collaborateur AND s.identifiant = p.id_Poste 
    FROM appel,poste,collaborateur GROUP BY c.nom

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Dark_Ryus, je te laisse corriger ton erreur avant que le grand méchant loup ne revienne...

    diamentelle, utilisez plutôt des jointures normalisées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT c.nom, sum(p.coutTTC) 
    FROM Collaborateur c INNER JOIN Poste s
                       ON c.identifiant=s.id_Collaborateur INNER JOIN Appel p 
                                                           ON s.identifiant = p.id_Poste 
    GROUP BY c.nom
    
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  7. #7
    Membre éclairé Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Par défaut
    C'est surement pour le from qui traine en plus lol, j'ai pas relu toute la requête ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT c.nom,sum(p.coutTTC) 
    FROM Collaborateur c , Poste s , Appel p 
    WHERE c.identifiant=s.id_Collaborateur AND s.identifiant = p.id_Poste 
    GROUP BY c.nom
    Si ya une autre erreur, je ne sais pas ou je vois pas clair lol

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de requete SQL avec la valeur NULL
    Par samyghan dans le forum Installation
    Réponses: 8
    Dernier message: 12/03/2006, 17h24
  2. Probleme de requete SQL
    Par arcane dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 04/10/2005, 11h59
  3. Probleme de requete SQL avec un champs date
    Par ju360modena dans le forum ASP
    Réponses: 5
    Dernier message: 16/06/2005, 11h18
  4. Probleme Session/requete SQL
    Par kolib dans le forum ASP
    Réponses: 4
    Dernier message: 14/06/2005, 16h23
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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