Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 21h15   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0
Par défaut Requête sur 2 tables et changements de valeurs

Bonjour,

Je suis désolé mais je sens que je vais impatienter bien des gens avec ma question de débutant, ceci dit, pris par le temps je poste ma question (et aussi parce que je m'y retrouve mal avec le tutoriel sur les jointures, disposant d'une vieille version de ACCESS au travail).

Voila, je fais une requête qui fait appel à deux tables, dans ma table 1 j'ai un nom de deal (finance), l'agence de notation qui le note, l'ancienne note et la nouvelle note. Comme suit :

DEAL___________AGENCE____________RATING FROM________NEW RATING
Deal 1__________Moody's_______________Ba1________________Caa3
Deal 2___________S&P__________________BB-________________CCC+
Deal 3___________Moody's_______________Ba3_______________Caa2
Deal 4___________Fitch_________________BB+________________CCC-

Dans une autre table, j'ai construis une correspondance des ratings entre agences :

S&P________MOODY'S_________FITCH___________RATING GENERAL
BB___________Ba1_____________BB____________________BB
BB+__________Ba2_____________BB+__________________BB
BB-__________Ba3_____________BB-____________________BB
CCC__________Caa1___________CCC____________________CCC
CCC-_________Caa2____________CCC-_________________CCC
CCC+_________Caa3___________CCC+___________________CCC



En fait, chaque agence utilise beaucoup une échelle de rating différente mais j'aimerai changer chaque rating par mon "rating général" et dans une nouvelle table, ou plutot requête, pouvoir afficher une liste avec les nouveaux ratings à la place des anciens. Exemple ici j'aimerai donc obtenir :

DEAL___________AGENCE__________RATING FROM_______NEW RATING
Deal 1__________Moody's_____________BB_________________CCC
Deal 2___________S&P________________BB_________________CCC
Deal 3___________Moody's____________BB_________________CCC
Deal 4___________Fitch______________BB__________________CCC

Pour ensuite pouvoir construire un tableau croisé dynamique sous excel sans avoir cinquante milles ratings en lignes et en colonne mais uniquement mon BB et mon CCC (qui ne sont que des exemples puisque la liste finale des mes ratings sera AAA AA A BBB BB B ainsi de suite jusqu'à D ..)

Mais le tout en ayant enlevé les occurences style - ou + ou aa1 aa2 aa3.

Est ce que je suis clair?

Merci à celui qui pourra m'aider, si je suis aidable
Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 10h41   #2
Membre chevronné
 
Avatar de alassanediakite
 
Homme Alassane Diakité
Conseil - Consultant en systèmes d'information
Inscription : août 2006
Messages : 538
Détails du profil
Informations personnelles :
Nom : Homme Alassane Diakité
Âge : 34
Localisation : Mali

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information

Informations forums :
Inscription : août 2006
Messages : 538
Points : 603
Points : 603
Envoyer un message via Yahoo à alassanediakite
Salut
Peux-tu donner une version française de tes expressions. Je remarque par ailleurs que certaines expressions comme "S&P" sont à la fois en-tête de colonne et donnés de ligne. BBB ou AAA ou CCC signifient quoi?
La seule chose que j'ai bien compris c'est que tu ne veux plus voir +,-,2... à la suite des AAA ...
__________________
Le monde est trop bien programmé pour être l’œuvre du hasard…
alassanediakite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 15h35   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0
Merci de ta réponse !

En fait en majuscule ce sont les titres des colonnes.

Quand j'écris AGENCE, il s'agit du titre de ma colonne, et les lettres AAA, AA, A, BBB, BB, B etc. sont les notes attribuées par ces agences.

DEAL_________AGENCE________RATING FROM________NEW RATING
Deal 1________Moody's__________BBB+_________________BB-

Ca se lirait : le deal 1 a été noté par l'agence Moody's (le nom de l'agence de notation), son ancien rating (notation) est de BBB+ et son nouveau rating est de BB-.

Et le résultat que je recherche serait dans une nouvelle table de voir apparaitre ces ratings mais BBB à la place de BBB+ et BB à la place de BB-.

Du coup je me suis fais une table de correspondance (le titre des colonnes en gras) :

S&P________MOODY'S_________FITCH___________RATING GENERAL
BB___________Ba1_____________BB____________________BB
BB+__________Ba2_____________BB+__________________BB
BB-__________Ba3_____________BB-____________________BB
CCC__________Caa1___________CCC____________________CCC
CCC-_________Caa2____________CCC-_________________CCC
CCC+_________Caa3___________CCC+___________________CCC

Qui se lit comme tel pour la 1ère ligne en italique par exemple: quand l'agence de notation S&P attribue un BB, l'agence de notation Moody's attribue un Ba1 (note équivalente) et l'agence de notation Fitch attribue BB (note équivalente) et moi j'aimerai que maintenant toutes ces notes deviennent BB.

C'est comme si tous les profs notaient sur 20 et un prof notait sur 10 ses élèves. Alors pour le prof qui note 2/10 à un élève, je voudrai en important dans la nouvelle table que ca se change d'un seul coup en 4/20.

Car si l'agence de notation S&P et Fitch ont la même échelle de rating comme tu peux le voir, l'agence Moody's note différement, et je cherche donc à faire des conversions.
Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 15h40   #4
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Bonjour,

Ca serait sans doute plus simple pour la suite si ta table de correspondance avait cette allure :
AGENCE________RATING ________RATING GENERAL
Moody's__________Ba1_________________BB
La clé de la table étant le couple (Agence/Rating).
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h52   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0
Et donc faire une table pour chaque agence ?

Table1
AGENCE_________RATING___________RATING GENERAL
Moody's_________AAA+_____________AAA
Moody's_________AAA-_____________AAA
Moody's_________Ba1_______________BB
....

Table2
AGENCE_________RATING___________RATING GENERAL
S&P_________AAA+_____________AAA
S&P_________AAA-_____________AAA
S&P_________BB+_______________BB
........

Table3
AGENCE_________RATING___________RATING GENERAL
Fitch_________AAA+_____________AAA
Fitch_________AAA-_____________AAA
Fitch_________BB+_______________BB
........

A vrai dire je m'en fiche un peu de la manière de procéder, du moment que ca marche..

Merci de ton aide
Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h59   #6
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Non, une seule table pour toutes les agences.

Ensuite, une requête entre cette table et l'autre

DEAL_________AGENCE________RATING FROM________NEW RATING
Deal 1________Moody's__________BBB+_________________BB-

Te donnera

DEAL_________AGENCE________RATING GENERAL FROM________NEW RATING GENERAL
Deal 1________Moody's__________BBB+_________________BB-
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 17h14   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0


Comme ça ?
Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 17h58   #8
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0
Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT AllRatings.Date, 
AllRatings.[Deal ISSUER], 
AllRatings.series, 
AllRatings.Class, 
AllRatings.RatingAgency, 
AllRatings.PreviousRating, 
ListRating.[RATING GENERAL], 
AllRatings.RatingTo, 
ListRating.[RATING GENERAL]
FROM AllRatings INNER JOIN ListRating 
ON AllRatings.ID = ListRating.ID;
Avec mon pauvre code je vais pas aller loin.

Sachant que dans la table ListRating, qui est celle que j'ai mis en fichier image au dessus, access ne me laisse pas définir "rating" comme clé primaire en me disant que je dois d'abord autoriser les "duplications".. need help.
Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 10h14   #9
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
La clé primaire est unique.
C'est donc le couple Agence/Rating qui doit être la clé primaire.

Ensuite la jointure entre AllRatings et ListRating doit se faire sur l'Agence et le Rating.
De plus, la table ListRating doit être en double dans la requête, pour avoir le RatingGénéral équivalement au RatingFrom et celui équivalent au NewRating
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 12h30   #10
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0
OK, quand je paramètre mes tables, ACCESS refuse de définir l'Agence en tant que clé primaire parce qu'il y a des champs NULL. Comment y remédier?

Tu es certain que ce champs peut être défini comme primaire? Car il n'y a que trois agences et 50 000 lignes peuvent contenir la même agence de notation, ce qui renvoit donc la même valeur pour un nombre multiple de lignes.

Merci.
Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 14h14   #11
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
La clé primaire doit être sur Agence/Rating.
Pourquoi y-a-t-il des lignes avec l'Agence à Null ?

Pour un couple Agence/Rating, tu n'as qu'un seul Rating General.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h31   #12
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 0
Points : 0


J'avais 5 enregistrements avec des champs nuls que j'ai supprimé.

Maintenant le message d'erreur stipule qu'on ne peut définir RatingAgency (AGENCE) comme clé primaire puisqu'il y a des champs "dupliqués". Je suppose des champs de même valeurs, et qu'il faut tout d'abord autoriser les champs dupliqués. Mais comment?

Analyst_1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h54   #13
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
On ne parle pas de la même table.
Je parle de la table dans laquelle il y a les champs "Agence", "Rating" et "RatingGeneral" (sans espace, sans accent, c'est mieux).
La clé doit être sur le couple Agence/Rating.

Sur ta table AllRatings, la clé est sur ID.
Il y a peut-être aussi un index unique.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h51.


 
 
 
 
Partenaires

Hébergement Web