Aide pour requêtes en SQL - SQL/NoSQL - Programmation
Marsh Posté le 26-03-2003 à 14:41:26
Groomy a écrit : J'ai besoin de 2 codes SQL, je suis débutant et j'avoue avoir un peu de mal sur ces deux là... :? |
C'est tes devoir pour demain ?
Attend je reflechi...
EDIT : c tres tordu comme requete !
la premiere je pige pas
la deuxieme aussi est bizarre
Marsh Posté le 26-03-2003 à 14:48:31
Mauvais_Karma a écrit : |
ou alors.... les profs devraient toujours penser a empecher l'acces au net pendant les interrogations
c'est vrai que c'est tordu, j'ai commence a reflechir aussi mais bon pas facile comme ca
Marsh Posté le 26-03-2003 à 14:49:01
facile comme tout toutes les deux.
si j'ai 5 minutes, je vous réponds. mais là j'ai trio de taff, je ne fais que passer.
Marsh Posté le 26-03-2003 à 14:58:29
SELECT NomClient
FROM CLIENTS (CL), PRODUITS (P), LIVRAISONS (L), CATEGORIES (CA)
WHERE CL.NumClient = L.NumClient;
AND L.NumProduit = P.NumProduit;
AND CA.Designation = CL.Designation;
AND CA.Designation != 'E';
AND P.Libelle = *;
* pour dire all
!= pour dire different
Pour la 1, explication : premierement on fait des liens entre chaque table car elle nous sera tous utils.
Ensuite on fais des filtres en fonction des donnés...
PS : c'est pas forcement juste mais comme cela que j'aurais fais.
Marsh Posté le 26-03-2003 à 15:00:12
Je connais la réponse, mais il faut que tu me dises si c'est pour un devoir ou non (discrétion oblige )
Marsh Posté le 26-03-2003 à 15:03:45
1)
SELECT DISTINCT CLIENTS.NomClient FROM CLIENTS, LIVRAISONS, (SELECT PRODUITS.NumProduit FROM PRODUITS WHERE PRODUITS.NumProduit NOT IN (SELECT PRODUITS.NumProduit FROM PRODUITS, LIVRAISONS, CLIENTS WHERE CLIENTS.Designation = 'E' AND LIVRAISONS.NumClient = CLIENTS.NumClient AND PRODUITS.NumProduit = LIVRAISONS.NumProduit)) AS TMP WHERE CLIENTS.NumClient = LIVRAISONS.NumClient AND LIVRAISONS.NumProduit = TMP.NumProduits |
Tout simple.
PS: j'ai fais exprès d'écrire ça comme un gros porc. Si c'est pour un devoir, c'est la bulle assurée. Si c'est sérieux et pour ton job, alors ça marche sous Oracle 8i et SQL Server 2000 (les autres SGBD, je sais pas, mais ça ne fonctionne pas sur les versions antérieures de ces deux-là)
Marsh Posté le 26-03-2003 à 15:05:34
guiotv2 a écrit : SELECT NomClient |
Marche pas ton bidule. Et c'est encore moins compatible que ce que j'ai écrit comme code
le "*", ça marche sous kel SGBD ? Sous Oracle par exemple, le "*" est très loin de vouloir dire ça.
Marsh Posté le 26-03-2003 à 15:10:13
Les numéros et prix des produits qui ont un prix supérieur aux prix de tous les produits livrés chez au moins 2 clients.
SELECT PRODUITS.NumProduit, PRODUITS.PrixBrut |
PS: Désolé, j'arrivepas à la faire trop porc...
Marsh Posté le 26-03-2003 à 15:16:46
MagicBuzz a écrit : |
J'ai bien preciser que c'etait pas forcement bon..
oui, c'etait sous oracle...
C'est koi deja pour dire "all" ?
Marsh Posté le 26-03-2003 à 15:18:53
guiotv2 a écrit : |
Je sais même pas ce que tu veux dire par "all"
PS: Sinon, pour le "*", j'ai confondu avec le "(+)". En fait c'est sous SQL Server que le "*" veut dire comme le "(+)" d'Oracle et que dont ta syntaxe me surprenait (avec SQL Server tu fait un left outer join si tu mets une * là)
Mais peut-être que sous Oracle le * veut bien dire "all". Ca sert à quoi au juste ? Ca pourrait peut-être simplifier mes requêtes des fois
Marsh Posté le 26-03-2003 à 15:33:29
Non, c'est pas pour un devoir. C'est pour un tp de GL, on vient de commencer SQL depuis 2 semaines
et nous aussi on les trouve tordues les requêtes.
Je vais éssayer tt ça ce soir, je n'ai pas le temps pour l'instant. Je reste tt de même ouvert à ttes nouvelles propositions...
Marsh Posté le 26-03-2003 à 15:38:39
C koi la différence entre un TP et des devoirs ?
Je sais bien que ça fait un bout de temps que j'ai quitté l'école, mais j'ai pas souvenir de la moindre différence.
En tout cas, une chose est sûr, votre prof est un gros naze. J'ai jamais eu à faire un exo de ce genre en dehors d'une salle sans accès au net et hors temps limite, sinon autant donner les réponse avec, y'a toujours des malins comme toi qui font sous-traîter, c'est si facile.
Marsh Posté le 26-03-2003 à 16:28:09
MagicBuzz a écrit : C koi la différence entre un TP et des devoirs ? |
ben au moins en ayant eu la reponse et en l'ayant compris , il sera plus apte a faire ses futures requetes.
Mais il ne faut pas que ca devienne une habitude de faire sous traiter, parce que a l'exam... pas possible.
Mais t'inquite, les debuts en SQL c'est toujours tres difficile. Je n'ai reellement reussi a faire des requetes potables que quelques semaines avant l'examen.
Marsh Posté le 26-03-2003 à 16:38:56
Groomy a écrit : Non, c'est pas pour un devoir. C'est pour un tp de GL, on vient de commencer SQL depuis 2 semaines |
Ca c'est le truc qu'il fallait pas dire ! lock + TT, les nouvelles propositions tu les liras dans un précis de SQL !
MagicBuzz > ça crevait les yeux que c'était pour ça ! D'ou mon drapeau bleu au début, poru garder un oeil sur le topic ! C'était pas la peine de lui filer la soluce ! La prochaine fois, je te réserve le même sort !
Marsh Posté le 26-03-2003 à 13:32:46
J'ai besoin de 2 codes SQL, je suis débutant et j'avoue avoir un peu de mal sur ces deux là... :?
la base comporte les 4 quatres relations suivantes:
CLIENTS (NumClient cp, NomClient, Designation)
PRODUITS (NumProduit cp, Libelle, PrixBrut)
LIVRAISONS (NumProduit cp, NumClient cp, Quantité)
CATEGORIES (Designation cp, Reduction)
cp=clé primaire
et voici les 2 interrogations:
- Les noms des clients ayant été livrés de tous les produits qui n'ont jamais été livrés à des clients de catégories E.
- Les numéros et prix des produits qui ont un prix supérieur aux prix de tous les produits livrés chez au moins 2 clients.
Si qql pouvait m'aider...
Merci