Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
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 17/09/2008, 11h31   #1
Membre à l'essai
 
Inscription : mai 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 121
Points : 24
Points : 24
Par défaut Faire un UPDATE avec un CASE

Bonjour à tous,

Je cherche à faire la chose suivante.

J'ai deux tables temporaires.

TABLE1 (ID, NumIndicateur, ValeurIndicateur)
Les indicateurs sont numérotés de 1 à 30.
La clé primaire est composé de ID et NumIndicateur

TABLE2 (ID, ValeurIndicateur1, ValeurIndicateur2 ...., ValeurIndicateur30)
La clé primaire est ID

La table 1 contient pour chaque ID plusieurs indicateurs avec la valeur de ce dernier.
La table 2 contient uniquement les différents ID.

Je souhaite renseigner la valeur des indicateurs dans ma table 2.

J'ai essayé le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
UPDATE Table2
SET 	ValeurIndicateur1 = case when Table1.NumIndicateur = 1 then  Table1.ValIndicateur,
ValeurIndicateur2 = case when Table1.NumIndicateur = 2 then Table1.ValIndicateur,
...etc...
ValeurIndicateur30 = case when Table1.NumIndicateur = 30 then
Table1.ValIndicateur
 
FROM Table1
 
WHERE Table1.ID = Table2.ID
Néanmoins ce code ne me renseigne pas toutes les données.
Je me retrouve avec pleins de valeurs nulles (quasiment toutes) alors qu'elles sont bien présentes dans ma table1.

Les quelques données présentes sont pourtant les bonnes.

Est-ce quelqu'un aurait déjà rencontré ce problème?

Merci d'avance.
chrislcf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2008, 18h46   #2
Membre à l'essai
 
Inscription : mai 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 121
Points : 24
Points : 24
L SGBD est SQL Server 2005
chrislcf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2008, 07h39   #3
Membre chevronné
 
Avatar de cavo789
 
Homme Christophe Avonture
Développeur Web
Inscription : mai 2004
Messages : 649
Détails du profil
Informations personnelles :
Nom : Homme Christophe Avonture
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 649
Points : 774
Points : 774
Il me semble que ta clause FROM est incorrecte.

Sauf erreur (je n'ai pas encore bu de café), tu devrais inscrire

__________________
Christophe
Développeur de l'extension AllEvents, gestionnaire d'évènements pour Joomla
http://avonture.be/allevents - https://www.facebook.com/com.allevents - http://twitter.com/#!/avonture
cavo789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2008, 10h08   #4
Membre à l'essai
 
Inscription : mai 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 121
Points : 24
Points : 24
Ok je vais essayer cette solution ...

Je cherche également à créer une table temporaire avec un champ auto incrémenté sous SQL Server 2005.
Est-ce possible ?
chrislcf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2008, 11h30   #5
Membre à l'essai
 
Inscription : mai 2008
Messages : 121
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 121
Points : 24
Points : 24
Solution pour le champ auto incrémenté en sql server

Code :
1
2
3
4
5
6
7
CREATE TABLE #tmp(
[id] INT NOT NULL IDENTITY(1,1), --champ auto incrémenté
[var1] [float]
.
.
.
.)
chrislcf 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 05h59.


 
 
 
 
Partenaires

Hébergement Web