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 :

Requete SQL


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut Requete SQL
    Slu

    cherche qqn "pro" en sql pour me donner un chti coup de main pour faire des requete ou correction de requete que j ai fais ..

    thx @+

  2. #2
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    faudrais que tu post ta requete pour qu'on la corrige ou qu'on donne des conseil... :o
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    des pros c'est peut etre beaucoup (mais il y en a)
    mais tu peux toujours poster des requetes.

  4. #4
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    c possible par mp ??

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par Seth77
    c possible par mp ??
    Si tu trouve des volontaires, pourquoi pas, mais ce n'est pas vraiment le but du forum. Si tu as un souci sur une requête, poste-la en précisant ton SGBD, la structure des tables, etc. tu auras bien plus de chances de trouver qqun de dispo sur le forum plutôt qu'en t'appuyant sur une personne en particulier ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Voici les requetes qui me posent probleme :

    - Quel plat d entree a ete le plus souvent commande (n°et Nom)
    - Quels plats figurent dans toutes les commandes du 10/09/2005 (N° et nom)

    Voici les tables:

    Commande :
    NumCommande INT
    NumTable INT
    DateEnregistrement DATE
    NbrePersonne INT
    HeureEncaissement HEURE
    ModePaiement CHAR (30)
    MontantTotal DOUBLE

    Affecter :
    DateAffectation DATE
    NumTable INT
    NumServeur INT

    TableRestaurant :
    NumTable INT
    NbreConvive INT

    Serveur :
    NumServeur INT
    Nom CHAR (30)
    Prenom CHAR (30)
    Grade CHAR (30)

    Plat :
    CodePlat CHAR (2)
    Libelle CHAR (30)
    Type CHAR (30)
    PrixUnitaire DOUBLE

    Contient :
    NumCommande INT
    CodePlat CHAR (3)
    Quantite INT




    thx d avance !

  7. #7
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Citation Envoyé par Seth77
    - Quels plats figurent dans toutes les commandes du 10/09/2005 (N° et nom)
    Je réponds à la 2e requete que tu as de besoin
    en mysql les types DATE sont stocké sous le format américain...('yyyy-mm-dd') donc dans ta clause where tu compares ta date sous ce format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Command.NumCommand, Contient.CodePlat, Plat.Libelle
    FROM Command
    INNER JOIN Contient ON Command.NumCommande = Contient.NumCommand
    INNER JOIN Plat ON Command.CodePlat = Plat.CodePlat
    WHERE Command.DateEnregistrement = '2005-09-10'
    Si j'ai bien compris tes tables et que dans ta question "no" était le CodePlat et que "nom" était le Libelle

    Donne m'en des nouvelle
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Points : 59
    Points
    59
    Par défaut
    salut !

    pour la 1ere ... mais je ne suis pas sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select max(Plat.CodePlat) from Plat P, Contient C, Commande CO
    where CO.NumCommande = C.NumCommande 
    and P.CodePlat = C.pro_id

  9. #9
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,
    -- Quel plat d entree a ete le plus souvent commande (n°et Nom)
    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 	R.CodePlat, 
    	R.qte
    FROM
    (	
    SELECT 	p.CodePlat, 
    	SUM(Quantite) AS qte
    FROM 	Contient c
    INNER JOIN Plat p
    ON	c.CodePlat = p.CodePlat
    AND	p.Type = 'Hors-d''oeuvre'
    GROUP BY p.CodePlat
    ) AS R
    WHERE R.qte =
    (
    SELECT MAX(N.qte)
    FROM
    (	
    SELECT 	SUM(Quantite) AS qte
    FROM 	Contient c
    INNER JOIN Plat p
    ON	c.CodePlat = p.CodePlat
    AND	p.Type = 'Hors-d''oeuvre'
    GROUP BY p.CodePlat
    ) AS N
    );
    -- Quels plats figurent dans toutes les commandes du 10/09/2005 (N° et nom)
    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
     
    SELECT	CodePlat, 
    	Libelle
    FROM	Plat
    WHERE 	CodePlat NOT IN
    (
    SELECT 	t.CodePlat
    FROM	
    (
    SELECT	NumCommande,
    	CodePlat
    FROM	Commande
    CROSS JOIN Plat
    WHERE	DateEnregistrement = '10-09-2005'
    ) AS t
    LEFT OUTER JOIN 
    Contient c
    ON	t.NumCommande = c.NumCommande 
    AND	t.CodePlat = c.CodePlat	
    WHERE	c.NumCommande IS NULL	
    )
    ;
    Je pense que ça fait ce que tu veux, mais comme tu ne donnes pas de jeu d'essai je n'ai pu tester que la syntaxe.

    A +

  10. #10
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    :o

    c blais il y a des trucs que je ne connais pas ... comme Cross join, left outer join ... cela marche avec Easy PHP ?

  11. #11
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,

    LEFT JOIN oui, CROSS JOIN je n'en sais rien. Mais tu peux le remplacer par JOIN ... ON 1 = 1, ça fait la même chose.
    Par contre tu parles de PHP, je suppose donc que ta base c'est MySQL? Si c'est le cas la v° doit être au moins 4.1, sinon tu peux jeter mes requêtes.

  12. #12
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Citation Envoyé par ozzmax
    Citation Envoyé par Seth77
    - Quels plats figurent dans toutes les commandes du 10/09/2005 (N° et nom)
    Je réponds à la 2e requete que tu as de besoin
    en mysql les types DATE sont stocké sous le format américain...('yyyy-mm-dd') donc dans ta clause where tu compares ta date sous ce format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Command.NumCommand, Contient.CodePlat, Plat.Libelle
    FROM Command
    INNER JOIN Contient ON Command.NumCommande = Contient.NumCommand
    INNER JOIN Plat ON Command.CodePlat = Plat.CodePlat
    WHERE Command.DateEnregistrement = '2005-09-10'
    Si j'ai bien compris tes tables et que dans ta question "no" était le CodePlat et que "nom" était le Libelle

    Donne m'en des nouvelle
    Marche pas : Champ 'Commande.CodePlat' inconnu dans on clause

  13. #13
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Citation Envoyé par TheLeadingEdge
    Bonjour,
    -- Quel plat d entree a ete le plus souvent commande (n°et Nom)
    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 	R.CodePlat, 
    	R.qte
    FROM
    (	
    SELECT 	p.CodePlat, 
    	SUM(Quantite) AS qte
    FROM 	Contient c
    INNER JOIN Plat p
    ON	c.CodePlat = p.CodePlat
    AND	p.Type = 'Hors-d''oeuvre'
    GROUP BY p.CodePlat
    ) AS R
    WHERE R.qte =
    (
    SELECT MAX(N.qte)
    FROM
    (	
    SELECT 	SUM(Quantite) AS qte
    FROM 	Contient c
    INNER JOIN Plat p
    ON	c.CodePlat = p.CodePlat
    AND	p.Type = 'Hors-d''oeuvre'
    GROUP BY p.CodePlat
    ) AS N
    );
    -- Quels plats figurent dans toutes les commandes du 10/09/2005 (N° et nom)
    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
     
    SELECT	CodePlat, 
    	Libelle
    FROM	Plat
    WHERE 	CodePlat NOT IN
    (
    SELECT 	t.CodePlat
    FROM	
    (
    SELECT	NumCommande,
    	CodePlat
    FROM	Commande
    CROSS JOIN Plat
    WHERE	DateEnregistrement = '10-09-2005'
    ) AS t
    LEFT OUTER JOIN 
    Contient c
    ON	t.NumCommande = c.NumCommande 
    AND	t.CodePlat = c.CodePlat	
    WHERE	c.NumCommande IS NULL	
    )
    ;
    Je pense que ça fait ce que tu veux, mais comme tu ne donnes pas de jeu d'essai je n'ai pu tester que la syntaxe.

    A +
    La 2e fonctionne ...
    mais la 1er je ne voie pas vraiment ce que vient faire p.Type = 'Hors-d''oeuvre' pour le plat d entree le plus souvent commande

  14. #14
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par Seth77
    c blais
    C'est balaize ?

    Citation Envoyé par Seth77
    il y a des trucs que je ne connais pas ... comme Cross join, left outer join ... cela marche avec Easy PHP ?
    Il te suffit d'essayer
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  15. #15
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,
    Citation Envoyé par Seth77
    je ne voie pas vraiment ce que vient faire p.Type = 'Hors-d''oeuvre' pour le plat d entree le plus souvent commande
    Et moi non plus !!! J'avais ça en tête en tapant la requête

    Dans la 1ere requête tu remplaces donc 'Hors-d''oeuvre' par 'Entrée' (ou par ce que tu veux d'ailleurs!)

  16. #16
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Citation Envoyé par Seth77
    Marche pas : Champ 'Commande.CodePlat' inconnu dans on clause
    Ouais t'as raison
    au lieu de commande.CodePlat c'était contient.CodePlat....
    mon erreur
    La perfection n'est pas un but, l'amélioration constante devrait l'être!
    La position des Développeurs de developpez avec les explications

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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