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

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    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 expérimenté 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
    Points : 1 738
    Points
    1 738
    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 920
    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 920
    Points : 51 712
    Points
    51 712
    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 +

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    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 habitué Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Points : 162
    Points
    162
    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 : 44
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    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
    

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Points : 162
    Points
    162
    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

  8. #8
    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 : 44
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    C'était bien le 2ème FROM

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    merci pour vos reponses mais ca marche toujours pas

  10. #10
    Membre expérimenté 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
    Points : 1 738
    Points
    1 738
    Par défaut
    Vous pouvez reposter votre requete modifiée et qui ne fonctionne pas ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    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;
    merci

  12. #12
    Membre expérimenté 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
    Points : 1 738
    Points
    1 738
    Par défaut
    Et quelle erreur vous renvoie votre SGBD ?

  13. #13
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    moi je voudrais afficher un tableau avec c# mon programme ne me renvoi aucune erreur

  14. #14
    Membre expérimenté 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
    Points : 1 738
    Points
    1 738
    Par défaut
    peut etre parce que votre requete ne vous renvoie aucun resultat ?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    normalement elle doit renvoyer car j avais utilisée une requete simple et ca a retourné un resultat

  16. #16
    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 : 44
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Postez les DDL de vos tables et un jeu d'essais, cela ira plus vite pour tout à chacun !


  17. #17
    Nouveau membre du Club
    Inscrit en
    Février 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    Essaye deja la requete dans ton query analyseur...
    Si retourne rien cherche pas plus Loin, tes tables ne sont pas remplies (ou pbm dans tes identifiants) .
    si ça retourne quelque chose, regarde ton code C#...

  18. #18
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    bonjour
    j'ai essayée la requete dans le query analyser ca affiche
    nom (aucun nom de colonne) numero
    Abbassi 428,75 320
    hajji 13 221
    salaoui 39,375 333
    taibi 355,95 222
    tazi 5790,30833 207
    donc apparemment le probleme est dans le code c# mais moi je veux qu elle affiche coutTTC au lieu d'aucun nom de colonne
    voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT c.nom,sum(p.coutTTC),s.numero 
    FROM Collaborateur c , Poste s , Appel p 
    WHERE c.identifiant=s.id_Collaborateur AND s.identifiant = p.id_Poste 
    GROUP BY c.nom,s.numero,p.coutTTC
    voici mes tables
    Collaborateur (identifiant, nom, prénom, userid, password, travail, tel, mail, id_entite)
    Poste (identifiant, numéro, id_Collaborateur)
    Appel (identifiant, id_Poste, id_Telephone, id_Destinataire, date_debut, date_fin, type_jour_debut, type_jour_fin, duree, coutHT, coutTTC)
    merci

  19. #19
    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 : 44
    Localisation : France, Rhône (Rhône Alpes)

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

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

    Je reformule

    Postez vos DDL et un jeu d'essai

    A lire

    Règles du forum !


  20. #20
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Il vous manque un alias dans votre select, et vous avez un élément en trop dans votre group by. En utilisant les jointures normalisées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
        c.nom,
        sum(p.coutTTC) as coutTTC,
        s.numero 
    FROM
        Collaborateur c
        INNER JOIN Poste s
          ON s.id_Collaborateur = c.identifiant
        INNER JOIN Appel p 
          ON p.id_Poste = s.identifiant
    GROUP BY
        c.nom,
        s.numero

+ 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, 18h24
  2. Probleme de requete SQL
    Par arcane dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 04/10/2005, 12h59
  3. Probleme de requete SQL avec un champs date
    Par ju360modena dans le forum ASP
    Réponses: 5
    Dernier message: 16/06/2005, 12h18
  4. Probleme Session/requete SQL
    Par kolib dans le forum ASP
    Réponses: 4
    Dernier message: 14/06/2005, 17h23
  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, 15h45

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