Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 11/08/2011, 14h29   #1
Invité de passage
 
Inscription : janvier 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 33
Points : 0
Points : 0
Par défaut UPDATE avec jointure + case..

Bonjour à tous,

J'ai aujourd'hui une requete qui ressemble à ca:

Code :
1
2
3
4
5
6
SELECT chgcat.code, chgcat.sym AS Change_cat, chgcat.description, cnt.last_name, srv.sym AS Priorité
FROM chgcat
LEFT OUTER JOIN srv_desc srv ON chgcat.service_type=srv.persid
LEFT OUTER JOIN ca_contact cnt ON chgcat.group_id=cnt.contact_uuid
WHERE chgcat.description NOT LIKE '%'+cnt.last_name+'%'
AND chgcat.del=0
Voici le type de résultat que j'obtiens:
(code)PRTZASDUN001 (Change_cat)Changes for IT teams.DUN.Asia IT Lab.Add a new server (description)DP-ZAS-DUN 1 Week (last_name)CS-ZAS-DUN (Priorité)D5_Production


Je cherche à faire un update de la colonne description en utilisant les informations présentes dans la colonné Priorité + last_name...

Dans le cas d'une priorité = D5_Production par exemple, le champ description prend une certaine valeur + le contenu du champ last_name.

Je ne maîtrise absolument pas mssql à ce niveau et j'ai grand besoin de votre aide pour réaliser cette requête si elle s'avère possible!

Merci d'avance
Fingertip est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 15h45   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

quelque chose comme ceci ?

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
 
UPDATE C
    SET C.description = CASE 
        WHEN srv.sym = 'D5_Production' THEN 'uneCertainValeur' + cnt.last_name
        WHEN ...
        ELSE C.Description
    END
FROM chgcat C
LEFT OUTER JOIN srv_desc srv ON C.service_type=srv.persid
LEFT OUTER JOIN ca_contact cnt ON C.group_id=cnt.contact_uuid
WHERE C.description NOT LIKE '%'+cnt.last_name+'%'
AND chgcat.del=0
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 10h08   #3
Invité de passage
 
Inscription : janvier 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 33
Points : 0
Points : 0
Wooahh!

Parfait, j'avais tenté diffèrentes syntaxe à base de CASE mais n'était parvenu à rien.

Merci beaucoup
Fingertip est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h59.


 
 
 
 
Partenaires

Hébergement Web