copier un champs vers lui même ?

Le
olivier
bonjour,

dans ma tables ADRESSES j'ai des adresses par éléves (il peut y en avoir
plusieurs..)
TABLE ADRESSES

AD_id INT
eleve_ID int
voie varchar()
ville varchar()

pour chaque éléve :

je voudrais recopier dans la dernière adresse saisie (donc avec l'id le plus
élévé)
le contenu de la 1ère adresse saisie (donc avec l'id le plus bas)

j'espère mes explication assez claires ;-)
merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe TROTIN [MS]
Le #11882841
Bonsoir,

Voici un exemple mais il y a peut être plus simple :

<<

DECLARE @ADRESSES TABLE(AD_id INT, eleve_ID int, voie varchar(100), ville
varchar(100))

INSERT INTO @ADRESSES(AD_id, eleve_ID, voie, ville) VALUES(1, 1, 'aaa',
'paris')
INSERT INTO @ADRESSES(AD_id, eleve_ID, voie, ville) VALUES(2, 1, 'bbb',
'lyon')
INSERT INTO @ADRESSES(AD_id, eleve_ID, voie, ville) VALUES(3, 1, 'ccc',
'marseille')
INSERT INTO @ADRESSES(AD_id, eleve_ID, voie, ville) VALUES(4, 2, 'aaa2',
'paris')
INSERT INTO @ADRESSES(AD_id, eleve_ID, voie, ville) VALUES(5, 2, 'bbb2',
'lyon')

-- Avant
SELECT * FROM @ADRESSES

UPDATE @ADRESSES
SET voie = z2.voie, ville = z2.ville
FROM @ADRESSES a
INNER JOIN (SELECT DISTINCT MAX(AD_id) AS AD_id, eleve_ID FROM @ADRESSES
GROUP BY eleve_ID) z1 ON a.AD_id = z1.AD_id
INNER JOIN (SELECT x.* FROM @ADRESSES x INNER JOIN (SELECT DISTINCT
MIN(AD_id) AS AD_id, eleve_ID FROM @ADRESSES GROUP BY eleve_ID) y ON x.AD_id
= y.AD_id) z2 ON z1.eleve_ID = z2.eleve_ID

-- Apres
SELECT * FROM @ADRESSES








Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"olivier"
bonjour,

dans ma tables ADRESSES j'ai des adresses par éléves (il peut y en avoir
plusieurs..)
TABLE ADRESSES

AD_id INT
eleve_ID int
voie varchar()
ville varchar()

pour chaque éléve :

je voudrais recopier dans la dernière adresse saisie (donc avec l'id le
plus élévé)
le contenu de la 1ère adresse saisie (donc avec l'id le plus bas)

j'espère mes explication assez claires ;-)
merci




Publicité
Poster une réponse
Anonyme