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 @+![]()
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 @+![]()
faudrais que tu post ta requete pour qu'on la corrige ou qu'on donne des conseil... :o
salut,
des pros c'est peut etre beaucoup (mais il y en a)
mais tu peux toujours poster des requetes.
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 ...Envoyé par Seth77
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 !
Je réponds à la 2e requete que tu as de besoinEnvoyé par Seth77
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
Si j'ai bien compris tes tables et que dans ta question "no" était le CodePlat et que "nom" était le Libelle
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'
Donne m'en des nouvelle
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![]()
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)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.
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 ) ;
A +
:o
c blais il y a des trucs que je ne connais pas ... comme Cross join, left outer join ... cela marche avec Easy PHP ?
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.
Marche pas : Champ 'Commande.CodePlat' inconnu dans on clauseEnvoyé par ozzmax
La 2e fonctionne ...Envoyé par TheLeadingEdge
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
C'est balaize ?Envoyé par Seth77
Il te suffit d'essayerEnvoyé par Seth77
![]()
Re,
Envoyé par Seth77
![]()
![]()
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!)
Ouais t'as raisonEnvoyé par Seth77
au lieu de commande.CodePlat c'était contient.CodePlat....
mon erreur
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager