OVH Cloud OVH Cloud

Requete ?

2 réponses
Avatar
Mark
J'ai une table qui contient des marques d'automobiles, malheureusement
certaines marques sont écrite en abrégé ex: Chev pour Chevrolet et Hond
pour Honda etc...

je voudrais pouvoir mettre à jour cette table afin de n'avoir que la marque
écrite au complet. Car je dois les afficher dans une liste déroulante et je
ne veux pas me retrouver avec Chev, Chevrolet, Hond, Honda... car cette
liste est utilisé pour faire un tri afin d'afficher les modèles
correspondant à la marque sélectionné.

certain mon parler d'utiliser: SELECT marque FROM automobile WHERE marque IN
(SELECT ...) ceci en créant une autre table qui contient l'abréviation de la
marque ainsi que sont nom complet.
Je ne sais pas vraiment comment faire la requête !
ou serait-ce préférable avec un UPDATE marque FROM automobile WHERE marque
EXISTS (SELECT * FROM marque_abrev)

2 réponses

Avatar
Jac
Salut Mark,

je pense qu'il y a une autre solution simple et facile à mettre en oeuvre :
tu crées une table avec dans un champ les abréviations et dans un autre
champ, le nom en toute lettres, comme tu veux qu'il apparaisse.
Ensuite, dans une requête, tu mets les deux tables en relation sur
l'abréviation et tu affiches le nom complet.
De cette façon, si tu importes de nouvelles données, ton affichage sera
toujours impec.

Jac


"Mark" a écrit dans le message de news:
cH06d.122260$
J'ai une table qui contient des marques d'automobiles, malheureusement
certaines marques sont écrite en abrégé ex: Chev pour Chevrolet et Hond
pour Honda etc...

je voudrais pouvoir mettre à jour cette table afin de n'avoir que la
marque écrite au complet. Car je dois les afficher dans une liste
déroulante et je ne veux pas me retrouver avec Chev, Chevrolet, Hond,
Honda... car cette liste est utilisé pour faire un tri afin d'afficher les
modèles correspondant à la marque sélectionné.

certain mon parler d'utiliser: SELECT marque FROM automobile WHERE marque
IN (SELECT ...) ceci en créant une autre table qui contient l'abréviation
de la marque ainsi que sont nom complet.
Je ne sais pas vraiment comment faire la requête !
ou serait-ce préférable avec un UPDATE marque FROM automobile WHERE marque
EXISTS (SELECT * FROM marque_abrev)


Avatar
Sylvain Lafontaine
Hum, je crois que sa question était justement comment écrire la requête
SELECT pour mettre en oeuvre cette idée. La première chose à faire est de
faire du ménage et de mettre partout une seule et unique abréviation pour
chaque marque:

UPDATE automobile SET marque = 'HON' where marque = 'HOND' or marque =
'HONDA' ....

Faire/créer autant de updates que nécessaire afin de nettoyer les écuries
d'Augias. Ensuite, faire des requêtes JOIN pour associer le tout:

SELECT automobile.prix, marque_abrev.nom_complet_de_la_marque FROM
automobile INNER JOIN marque_abrev ON automobile.marque =
marque_abrev.marque

Évidemment, il serait peut-être plus appropriés de nommer la seconde table
Marques et de nommer le champ contenant l'abréviation par quelque chose du
genre comme Code ou Abreviation ou ID.

Finalement, le combobox liste simplement le code et le nom complet:

SELECT marque_abrev.marque, marque_abrev.nom_complet_de_la_marque FROM
marque_abrev

En mettant la largeur visible de la première colonne à zéro, l'utilisateur
ne verra apparaître que le nom complet dans le menu déroulant.

S. L.

"Jac" wrote in message
news:4158a6ea$0$19388$
Salut Mark,

je pense qu'il y a une autre solution simple et facile à mettre en oeuvre
:
tu crées une table avec dans un champ les abréviations et dans un autre
champ, le nom en toute lettres, comme tu veux qu'il apparaisse.
Ensuite, dans une requête, tu mets les deux tables en relation sur
l'abréviation et tu affiches le nom complet.
De cette façon, si tu importes de nouvelles données, ton affichage sera
toujours impec.

Jac


"Mark" a écrit dans le message de news:
cH06d.122260$
J'ai une table qui contient des marques d'automobiles, malheureusement
certaines marques sont écrite en abrégé ex: Chev pour Chevrolet et Hond
pour Honda etc...

je voudrais pouvoir mettre à jour cette table afin de n'avoir que la
marque écrite au complet. Car je dois les afficher dans une liste
déroulante et je ne veux pas me retrouver avec Chev, Chevrolet, Hond,
Honda... car cette liste est utilisé pour faire un tri afin d'afficher
les
modèles correspondant à la marque sélectionné.

certain mon parler d'utiliser: SELECT marque FROM automobile WHERE marque
IN (SELECT ...) ceci en créant une autre table qui contient l'abréviation
de la marque ainsi que sont nom complet.
Je ne sais pas vraiment comment faire la requête !
ou serait-ce préférable avec un UPDATE marque FROM automobile WHERE
marque
EXISTS (SELECT * FROM marque_abrev)