Besoin d'aide requête sql
Nikko
-
Nikko -
Nikko -
Bonjour,
J'ai besoin d'effectuer une requête de type UPDATE pour pouvoir mettre à jour un stock. Je vous mets ici le MRD de ma base de données :
Produit(codep, nom, quantiteenstock, #codet)
Type(codet, libellé)
Réservation(numero, datedépart, dateretour, quantite, #codet, #codes)
Salarié(codes, nom, prenom)
Dans cette requête, je voudrais mettre à jour "quantiteenstock" de Produit en prenant la quantiteenstock actuelle + "quantité" de Réservation.
Exemple :
J'ai la réservation numéro 2 qui vient de se terminer. La quantité de matériel retourné est de 3. Il faut donc mettre à jour quantiteenstock qui vaut 18. Donc, la nouvelle valeur de quantiteenstock est de 18+3=21.
Je ne sais pas si j'ai été assez clair, demandez moi si vous voulez un éclaircissement. J'ai besoin d'aide svp.
Merci d'avance,
Nikko
J'ai besoin d'effectuer une requête de type UPDATE pour pouvoir mettre à jour un stock. Je vous mets ici le MRD de ma base de données :
Produit(codep, nom, quantiteenstock, #codet)
Type(codet, libellé)
Réservation(numero, datedépart, dateretour, quantite, #codet, #codes)
Salarié(codes, nom, prenom)
Dans cette requête, je voudrais mettre à jour "quantiteenstock" de Produit en prenant la quantiteenstock actuelle + "quantité" de Réservation.
Exemple :
J'ai la réservation numéro 2 qui vient de se terminer. La quantité de matériel retourné est de 3. Il faut donc mettre à jour quantiteenstock qui vaut 18. Donc, la nouvelle valeur de quantiteenstock est de 18+3=21.
Je ne sais pas si j'ai été assez clair, demandez moi si vous voulez un éclaircissement. J'ai besoin d'aide svp.
Merci d'avance,
Nikko
A voir également:
- Besoin d'aide requête sql
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql lister les tables ✓ - Forum Programmation
20 réponses
comment fais-tu le lien entre tes produits et tes réservations? il te faudrait une clé étrangère dans réservation qui pointe vers produit.
à partir de là, c'est une requête d'update du genre
Update table Produit set quantite = (select produit1.quantite + reservation.quantite as quantite from produit1, reservation where produit1.codeP = produit.codeP and reservation.codeP = produit.codeP)
selon ton SGBD, cette requete peut marcher ou pas... mais l'esprit est là.
à partir de là, c'est une requête d'update du genre
Update table Produit set quantite = (select produit1.quantite + reservation.quantite as quantite from produit1, reservation where produit1.codeP = produit.codeP and reservation.codeP = produit.codeP)
selon ton SGBD, cette requete peut marcher ou pas... mais l'esprit est là.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Cependant, je ne comprends pas ta phrase lorsque tu dis : "comment fais-tu le lien entre tes produits et tes réservations? il te faudrait une clé étrangère dans réservation qui pointe vers produit. "
Je peux faire une jointure entre reservation et type et entre type et produit. Ainsi, la clé étrangère dont tu me parles n'a pas besoin d'être, si ?
Je peux faire une jointure entre reservation et type et entre type et produit. Ainsi, la clé étrangère dont tu me parles n'a pas besoin d'être, si ?
sur quoi tu te base pour faire ta jointure? il te faut un point commun entre les 2, sinon ça ne marchera pas. (c'est le principe d'une clé étrangère)
Je pensais faire la jointure suivante :
reservation.codet=type.codet and type.codet=produit.codet
Cette jointure est fausse ?
reservation.codet=type.codet and type.codet=produit.codet
Cette jointure est fausse ?
si je comprend bien, tu as une jointure 1-1 entre ta table produit et ta table type?
si c'est le cas, pourquoi faire 2 tables?
si ça n'est pas le cas, ta jointure ne marchera pas, car comment feras-tu pour identifier de manière unique tes produits sachant qu'il n'y a pas de contrainte d'unicité de ton champ codet dans ta table produit?
si c'est le cas, pourquoi faire 2 tables?
si ça n'est pas le cas, ta jointure ne marchera pas, car comment feras-tu pour identifier de manière unique tes produits sachant qu'il n'y a pas de contrainte d'unicité de ton champ codet dans ta table produit?
table produit 1,1 ------------- 1,n table type
je dois faire 2 tables car les réservation ne se font pas en fonction des produits, mais en fonction des types de produits.
Contexte :
En fait, le projet de mon stage est une application qui va permettre de gérer les stocks. Mon tuteur veut donc des pages web où l'on puisse voir qu'il y a, par exemple, des ordinateurs disponibles (peu importe l'ordinateur) et mon tuteur choisi l'ordinateur qu'il donnera à la personne qui réserve. Donc la personne qui réserve se fiche de savoir quel ordi est disponible.
Mais je dois quand même faire une mise-à-jour du stock des ordinateurs, donc du stock de la classe produit.
je dois faire 2 tables car les réservation ne se font pas en fonction des produits, mais en fonction des types de produits.
Contexte :
En fait, le projet de mon stage est une application qui va permettre de gérer les stocks. Mon tuteur veut donc des pages web où l'on puisse voir qu'il y a, par exemple, des ordinateurs disponibles (peu importe l'ordinateur) et mon tuteur choisi l'ordinateur qu'il donnera à la personne qui réserve. Donc la personne qui réserve se fiche de savoir quel ordi est disponible.
Mais je dois quand même faire une mise-à-jour du stock des ordinateurs, donc du stock de la classe produit.
le problème set qu'à priori une réservation correspond à un produit et non à un type, et que si tu te sers de ton type pour faire la jointure, tu vas ajouter une indétermination dans ta relation
donc je répète : il te manque une clé étrangère ou quelque chose pour faire le lien entre les produits et les réservations
donc je répète : il te manque une clé étrangère ou quelque chose pour faire le lien entre les produits et les réservations
Donc, d'après ce que je prends, je devrais modifier ma table réservation pour y ajouter une clé étrangère "codeprod" qui fait référence au code de la table produit ?
sachant qu'on réserve un type, le produit de la réservation ne sera renseigné qu'à chaque fois que la réservation est attribuée. cependant, si tu fais ton calcul avec le codet, sachant que plusieurs produits peuvent avoir le même codet, si tu fais la somme du nombre de produits et de toutes les réservations qui ont ce type de produit, tu vas avori des résultats aberrants
par ex : 3 ordinateurs de réservés : 1 HP et 2 DELL, tu veux faire le compte des DELL sachant qu'il y en a 45 en magasin, tu fais la somme des DELL en magasin plus des réservations dont le TYPE correspond au type de tobn produit, c'est à dire ordinateur et non pas DELL, et tu te retrouves avec 48 DELL au lieu de 47
par ex : 3 ordinateurs de réservés : 1 HP et 2 DELL, tu veux faire le compte des DELL sachant qu'il y en a 45 en magasin, tu fais la somme des DELL en magasin plus des réservations dont le TYPE correspond au type de tobn produit, c'est à dire ordinateur et non pas DELL, et tu te retrouves avec 48 DELL au lieu de 47
C'est vrai que c'est aberrant, mais ce sont les consignes que j'ai reçu : La réservation se fait sur le type de produit. Mon tuteur gère ensuite le matériel qu'il donne aux personnes réservant le matériel.
Penses-tu que je puisse faire 2 requêtes : la première mémorise le nombre d'ordinateurs (ou autre produit) réservés et j'inclus le résultat de cette requête dans la 2e pour pouvoir l'ajouter au stock du produit ?
J'ai modifié ma bdd en rajoutant une clé étrangère dans la table réservation et j'ai testé la requête que tu m'as fourni plus haut et il me met un message d'erreur comme quoi la table 'produit1' n'existe pas dans ma base de données...
Penses-tu que je puisse faire 2 requêtes : la première mémorise le nombre d'ordinateurs (ou autre produit) réservés et j'inclus le résultat de cette requête dans la 2e pour pouvoir l'ajouter au stock du produit ?
J'ai modifié ma bdd en rajoutant une clé étrangère dans la table réservation et j'ai testé la requête que tu m'as fourni plus haut et il me met un message d'erreur comme quoi la table 'produit1' n'existe pas dans ma base de données...
excuse moi, un petit oubli.
il faut mettre
from produit produit1, pour attribuer un nom de remplacement à ta table produit, pour la différencier de ta table produit que tu appelles dans la 1ere partie de ta requete
il faut mettre
from produit produit1, pour attribuer un nom de remplacement à ta table produit, pour la différencier de ta table produit que tu appelles dans la 1ere partie de ta requete
J'ai pas de serveur apache lancé, j'ai reboot la machine, réinstallé et la configuration de mysql server ne passe pas, il plante au niveau du redémarrage de l'application... Je comprends pas, j'ai pas touché au pc depuis hier soir et ca marchait niquel hier...