Menu

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

fretaccess - 7 juil. 2017 à 22:31 - Dernière réponse :  fretaccess
- 10 juil. 2017 à 18:56
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 

13 réponses

Répondre au sujet
0
Utile
pour preciser :

Si j'ajoute des champs a ma requete, cela annule l'effet minimum de mon champs cout de fret .....
Commenter la réponse de fretaccess
HDU 692 Messages postés mercredi 5 juillet 2017Date d'inscription 16 mars 2018 Dernière intervention - 7 juil. 2017 à 23:14
0
Utile
1
Bonjour,

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

Utilises les formulaires pour saisir / modifier.

A+
Bonkour HDD,
Je me suis mal exprime, je ne cherche pas a ajouter des informations mais des champs
Commenter la réponse de HDU
HDU 692 Messages postés mercredi 5 juillet 2017Date d'inscription 16 mars 2018 Dernière intervention - 7 juil. 2017 à 23:16
0
Utile
Et tu ne pourras pas ajouter des infos à des tables via une requête calculée...
Commenter la réponse de HDU
yg_be 5215 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention - 8 juil. 2017 à 10:14
0
Utile
8
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 5215 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention > fretaccess - 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] 
Ton code semble fonctionner de meme ! je regarde cela plus detail
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...
yg_be 5215 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention > fretaccess - 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?
c est desormais parfaitement clair je te remercie !
Commenter la réponse de yg_be