benoi1
Messages postés6Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention30 mars 2005
-
30 mars 2005 à 10:40
benoi1
Messages postés6Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention30 mars 2005
-
30 mars 2005 à 15:47
Bonjour,
Je travaille actuellement sur une base de donnée importante regroupement des informations produits
,concurrents etc. Pour expliquer simplement, je veux comparer plusieurs colonnes prix, lignes par
lignes, et sur une autre colonne avoir le plus petit prix des différentes clonnes, lignes par lignes.
Chaques colonnes prix correspondent à un concurrents et chaques concurrents a sa propre table.
Donc voila si qqn pouvait m'aider ca serait super
Merci , d'avance
But: Requete affichant,
Le champs Ref OE - Prix Concurrent1 - Prix Concurrent2 - ?
Et une quatrième colonne m'affichant le plus petit prix entre Prix Concurrent1 et Prix Concurrent2.
Ex.
Ref OE Prix Concurrent1 Prix Concurrent2 Champ4
45TX32 23.4 22.1 22.1
789852 17 18.9 17
Voila, je n'arrive pas a trouver le language qui permettrer à access de Comparer les deux colonnes
prix et de ne prendre que la plus petite valeur.
Merci d'avance pour l'aide
benoi1
Messages postés6Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention30 mars 2005 30 mars 2005 à 12:01
Je travaille seulement sur Access avec les fonctions intégrées et autres opérateurs mais je vois tres bien comment acceder sur le SQL.
Boucle ou pas ta solution sera la mienne. Mais bon ca parrait dur a faire si tu penses que le copier coller de code sources a ses limites dit le moi. mais si tu as un cheminement sur access pas de pb.
La table 1-2-3 interviennent juste pour avoir le nombres de lignes adequates.
La table 1 est lié à 2 et 3
Mais la presence des champs de ces trois tables dans la requete n'est qu'optionnel. Le plus important c'est d'avoir les
colonnes prix et la colonne comparaison.
benoi1
Messages postés6Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention30 mars 2005 30 mars 2005 à 14:10
Tbbuim1 je te remercie c presque ca.
Juste un petit pb: Si ici le concurrent1 n'a pas de prix pour une reference donnee mais que le concurrent2 en a un,
Access avec la formule que tu m'as donnée ne prendra pas par default le prix du concurrent2. (l'inverse marche).
Ex
REfOE:45897 Prixconcu1: (rien) Prixconcu2: 30 Champ4: (rien)
Voila si tusavais comment améliorer ca et si tu pouvais montrer le shéma pour etendre la formule à plusieurs concurrent.
Merci enormement en tous les cas
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 30 mars 2005 à 15:36
Pour ce qui est des concurrents supérieurs à 2, tu peux faire des iif
imbriqués en faisant des "tournois" entre les concurrents lol. Genre
(C1>C2) > (C3>C4)
Tu peux faire énormément de chose avec IIF à toi de savoir l'exploiter.
Sinon il existe une autre solution
MAIS ATTENTION, ça devient compliqué...
Il faut utiliser la fonction UNION, mais attention, il faut que les
champs dans les différentes tables aient le mm nom... Exemple RefOE et
Prix
SELECT RefOE, Prix FROM Concurrent1
UNION ou UNION ALL pour les lignes dupliquées
SELECT RefOE, Prix FROM Concurrent2;
Et là, par exemple tu aurais comme résultat:
Balai | 10
Balai | 20
VHS | 5
VHS | 10
Il affiche à la suite sur 2 colonnes les résultats des requêtes.
Donc il ne te reste plus qu'à ajouter une colonne Nom à chaque Table
concurrent dans laquelle tu mettras leur nom, concurrent1,2,3... sur
chaque ligne de tous leurs produits.
De telle sorte que tu auras
Balai | 10 | concurrent1
Balai | 20 | Concurrent2
Comme ça pour savoir quel est le concurrent le moins cher pour chaque
produit, il te suffira de mettre l'expression MIN sur le prix et t'aura
le concurrent le moins cher de chaque produit.
Facile non? lollllllllllllllllllllllllllllllllllllllllllllllllllll
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 30 mars 2005 à 15:40
Dernière petite précision:
La fonction UNION ne peut se faire qu'en SQL, il faudra donc pour
exploiter le résultat à sa guise, tranférer ce dernier dans une requête
simple. Et là on pourra y ajouter l'opération MIN sur la colonne Prix...
benoi1
Messages postés6Date d'inscriptionmercredi 30 mars 2005StatutMembreDernière intervention30 mars 2005 30 mars 2005 à 15:47
Ok pour les concurrents je dois pouvoir m'en sortir.
Je sais pas si tu as recu mon message sur le probleme de la valeur Null où je recois des messages erreurs.
regarde dans ta messagerie.
En tous cas j'approuve ton utilisation des smileys qui est tres judicieuse