Signaler

Ajouter des informations a ma colonne minimum [Résolu]

Posez votre question fretaccess - Dernière réponse le 10 juil. 2017 à 18:56 par fretaccess
Bonjour,
J ai une base de donnees de fret aerien
J ai reussi a creer une requete qui me sort le cout de fret minimum par destination.

Mais des lors que je souhaite ajouter des informations telles que la compagnie qui opere ce transport, access me sort toutes les compagnies (et tous les couts de fret) par minimum.

Comment faire pour ajouter des informations correspondant au cout minimum sans l alterer ?



Merci


Afficher la suite 
Utile
+0
plus moins
pour preciser :

Si j'ajoute des champs a ma requete, cela annule l'effet minimum de mon champs cout de fret .....
Donnez votre avis
Utile
+0
plus moins
Bonjour,

la requête sert à consulter des informations contenues dans les tables.

Utilises les formulaires pour saisir / modifier.

A+
fretaccess- 10 juil. 2017 à 16:23
Bonkour HDD,
Je me suis mal exprime, je ne cherche pas a ajouter des informations mais des champs
Répondre
Donnez votre avis
Utile
+0
plus moins
Et tu ne pourras pas ajouter des infos à des tables via une requête calculée...
Donnez votre avis
Utile
+0
plus moins
bonjour, je suggère de faire ainsi:
- appelons reqmin la requête qui te sort le coût de fret minimum par destination (celle que tu as créée au départ, sans information supplémentaire)
- tu crée une deuxième requête qui as comme sources d'une part reqmin, d'autre part tes tables de données. cette deuxième requête récupère les informations complémentaires des données ayant le coût minimum

par exemple, si tu as une table t1 avec le champ personne et le champ age et que tu cherches la personne la plus jeune (les personnes les plus jeunes, si elles ont le même âge):
- la requete reqmin serait
select min (age) as minage from t1

- la seconde requete serait
select t1.personne from T1, reqmin where t1.age = reqmin.minage

yg_be 2821Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 21 juillet 2017 Dernière intervention - 10 juil. 2017 à 18:04
tes deux observations sont correctes (absence de clé étrangère, et possibilité d'avoir plusieurs compagnies offrant le coût minimum)
cependant, tu pourrais peut-être faire ainsi:
select r.[Origin Airport], r.[Destination Airport], r.Product, r.[MinOf1000 kg] , min(t.[Carrier Name]) from reqmin as r, t1 as t
where r.[Origin Airport]=t.[Origin Airport]
and r.[Destination Airport] = t.[Destination Airport]
and r.Product = t.Product
and r.[MinOf1000 kg] = t.[1000 kg]
group by r.[Origin Airport], r.[Destination Airport], r.Product, r.[MinOf1000 kg] 
Répondre
fretaccess- 10 juil. 2017 à 18:08
Ton code semble fonctionner de meme ! je regarde cela plus detail
Répondre
fretaccess- 10 juil. 2017 à 18:21
J'ai aussi essaye ta requete avec mes tables/requete initiales, c est a dire celles sans la clef etrangere creee sous excel, cela fonctionne tout aussi bien.

Pourrais tu m'expliquer brievement l'architecture de ce code ?
En particulier le :
min(t.[Carrier Name])
et le where

Mais si je devais resumer ce que je comprends jusque la :
Tu selectionnes les Aeroports, le produit, le Min dans reqmin, et la compagnie dans t1,
le where permet de creer la relation entre reqmin et t1
le group by definit ce qui doit etre effectue sur les champs de reqmin, c est a dire uniquement les afficher...
Répondre
yg_be 2821Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 21 juillet 2017 Dernière intervention - 10 juil. 2017 à 18:55
j'essaie d'expliquer au mieux:
le select a deux sources, reqmin et t1.
donc il va chercher toutes les combinaisons possibles entre les deux sources.
le where limite le nombre de combinaisons, il filtre sur les combinaisons où les aéroports et le produit sont identiques, et où (r.[MinOf1000 kg] = t.[1000 kg]) le coût est minimum.
cela a résolu l'absence de relation entre les deux sources, (ou créé une sorte de relation).
pour éviter d'avoir plusieurs compagnies dans le cas où plusieurs offrent le coût minimum, je prends, pour chaque combinaison des champs du group by, la compagnie ayant le plus petit nom (min(t.[Carrier Name])).

cela t'éclaire-t'il?
Répondre
fretaccess- 10 juil. 2017 à 18:56
c est desormais parfaitement clair je te remercie !
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !