Requete SQL Aide merci!

cs_tchoukette Messages postés 32 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 12 janvier 2006 - 5 janv. 2006 à 18:06
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006 - 6 janv. 2006 à 04:20
Bonjour,

J'ai dans ma table 1 meme composant pour lequel j'ai 2 prix et donc 2 fournisseurs.
Je voudrai qu'il m'update une autre table par le prix le moins cher ?

Table Price & Component Terms

Ma requete initiale...
DoCmd.RunSQL "UPDATE [Component Terms] INNER JOIN Prices ON [Component Terms].[référence]=Price.[référence] SET [Component Terms].[PriceQ-3]=Price.[Price Qn-3(L3)] WHERE Price.[Price Qn-3(L3)] IS NOT NULL"

Merci d'avance
au secours!!

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 janv. 2006 à 02:06
Salut
A mon avis, il ne faut aps stocker dans des tables des résultats que tu peux recalculer à la volée.
De toute façon, ce n'est pas un "Update", mais un "Insert into" qu'il faudrait faire.
Questionne plutôt ta DB pour qu'elle te renvoie (avec un RecordSet) cette liste conditionnée, du genre :
Select Min(Price) From maTable Group by refArticle

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006
6 janv. 2006 à 04:20
Bon c'est pas tres tres clair mais je crois avoir compris. Par contre je ne vois pas de quelle table tu veux extraire le minimum et dans laquelle tu veux l'inserer. Je vais donc Prendre comme exemple :
- la table Price : dans laquelle tu as ton meme composant pour tes 2 fournisseurs et tes 2 prix.
- la table PriceMin dans laquelle tu veux inserer le minimum

contenu de la table Price :
_______________________________
| Composant | Fournisseur | Prix |
_______________________________
| C1 | F1 | P1 | Imaginons que P1 < P2
| C1 | F2 | P2 |
_______________________________

contenu de la table MinPrice :
_______________________________
| Composant | Fournisseur | Prix |
_______________________________
| ................. | .................... | .......... | -> rien

Voici le code pour recupérer la ligne correspondante au prix minimum : soit la ligne contenant P1
Puis Insertion de cette ligne dans la table MinPrice

'connexion à la base
Dim MaDb as new ADODB.Connection
Set MaDb = CurrentProject.Connection

'Declaration des 2 tables (Price et PriceMin)
Dim TblPrice as new ADODB.Recordset
Dim TblPriceMin as new ADODB.Recordset

'Recuperation de la ligne correspondant au pris minimum dans la table Price
TblPrice .open "select Min(Prix) from Price GroupBy Composant",MaDb, adOpenDynamic,
adLockOptimistic

'Insertion de la ligne correspondante dans la table MinPrice
TblMinPrice.open "select * from MinPrice", MaDb, adOpenDynamic, adLockOptimistic
TblMinPrice.fields("Composant")=TblPrice.fields("Composant")
TblMinPrice.fields("Fournisseur")=TblPrice.fields("Fournisseur")
TblMinPrice.fields("Prix")=TblPrice.fields("Prix")
TblPrice.update

La table MinPrice contient maintenant :
_______________________________
| Composant | Fournisseur | Prix |
_______________________________
| C1 | F1 | P1 |
_______________________________

Voila ! j'espere avoir resolu ton probleme
0
Rejoignez-nous