[ACCESS] Requête SQL URGENT SVP

Résolu/Fermé
Signaler
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
-
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
-
Bonjour,


Mon problème est que j'aimerais soustraire le champ "nbr_choisit" (qui reçoit une valeur tapée) dans la table ""prêt"" a "nbr_stock" dans la table ""produit"".





J'ai tenté une requête SQL mais je trouve pas la syntaxe exact



Merci d'avance.

33 réponses

Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
Tu peux préciser ton problème? Il te faut le résultat dans une autre table? Ou bien tu ne l'utilise que dans un Select?

Voilà ce que j'aurais fait (pour la seconde solution) :

Select prêt.nbr_choisit-produit.nbr_stock As Soustraction
From prêt, produit
Where pret.identifiant = produit.identifiant;


(ne pas oublier la jointure ;) )
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
je veux en faite que nbr_stock - nbr_choisit = nbr_stock ( le nouveau chiffre)
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
Et donc mettre le résultat de la soustraction à la place de nbr_stock ?

UPDATE TABLE produit (nbr_Stock) 
values (Select prêt.nbr_choisit-produit.nbr_stock As Soustraction
From prêt, produit
Where pret.identifiant = produit.identifiant);


non?

EDIT : ceci modifiera toute ta table... Donc si tu veux le faire pour une valeur spécifique, c'est différent.
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
je vais essayer
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
Il met met " erreur de syntaxe update" et il me souligne TABLE
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
Ah... Excuse moi si la syntaxe n'est pas très bonne, j'utilise SQL Server (d'ailleurs j'ai une erreur de syntaxe sur un IF...)
Je vais essayer de voir ça, je te tiens au courant.
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
Je te remercie
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
En effet, j'avais tout faux!
Bon... Alors...

à priori ce serait

UPDATE produit SET nbr_Stock = 
(Select prêt.nbr_choisit-produit.nbr_stock
From prêt, produit
Where pret.identifiant = produit.identifiant);


ou bien peut-être...

UPDATE produit SET nbr_Stock = prêt.nbr_choisit-produit.nbr_stock


Cela fait trop longtemps que je n'ai pas fait de SQL "pur" (avec des requêtes itou), SQL Server étant "trop" assisté pour faire ces choses là ;) (mais un gain de temps énorme... sauf quand ya des erreurs de syntaxe)
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
l'opération doit utiliser une requête qui peut être mis a jour




voila ce qu'il me met, je vais essayer de chercher
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
Maintenant ça dépasse mes connaissances d'ACCESS. Désolé de ne pas pouvoir t'aider d'avantage, j'espère néanmoins que cela t'a débloqué.

Si je trouve autre chose, je n'hésiterai pas à t'en faire part ;)
Et n'hésite pas si tu as encore besoin d'aide.

A bientôt

PS : le message s'affiche lorsque tu essaies quelle opération? la première (avec le select) ou la seconde (sans le select) ? Je pense que la seconde marchera mieux que la première, mais sans conviction.
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
UPDATE produit SET stock_prod = (select pret.nb_choisit-produit.stock_prod
From pret, produit
Where pret.ID_prod = produit.ID_prod);


j'appuie sur exécuté--> et la il me met le message



Et merci pour ton aide quand même, j'ai avancé un peu quand meme
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
De rien, ce fut un plaisir.
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
Cela fonctionne, mais il me change le stock de tous mes produits XD, j'aimerais qu'il le fasse que pour un, mais merci ça fonctionne
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
Ah, c'était ma crainte...
Dans ce cas, il faudrait passer par une fonction, je pense (pour pouvoir utiliser un paramètre)


Ah! ou alors, rajouter

where produit.identifiant = [valeur]


Après ta jointure... ?
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
a la place de valeur je met quoi ? désolé je suis nul -_-
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
Désolé, j'étais parti manger.

Tu remplace [valeur] par le numéro (ou le nom...) qui va identifier le produit que tu veux modifier.

Et en fait, j'ai mi Identifiant... mais ce n'est pas forcément ce nom là que tu dois mettre!!
Tout dépend de la clé primaire de ta table Produit.
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
je sais lol je réfléchis un peu quand même ^^
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
si j'identifie avec l'identifiant du produit je met a la place de valeur "ID_prod"?
0
Messages postés
439
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
6 février 2015
9
UPDATE produit INNER JOIN Pret ON produit.ID_prod = Pret.ID_prod SET produit.nb_prod = produit.nb_prod-pret.nb_choisit
WHERE ((pret.ID_prod)=[produit.ID_prod]);


voila ce que ca donne, mais il me change toujours les trois meme produits ( il enleve 4 au premier, 1 au deuxieme et 2 au troisieme -_-
0
Messages postés
257
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
28 avril 2010
79
WHERE ((pret.ID_prod)=[produit.ID_prod]);

T'as mit des [ ] pour le second membre...
0