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 11/06/2011, 22h05   #1
Membre éprouvé
 
Inscription : février 2006
Messages : 426
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : février 2006
Messages : 426
Points : 463
Points : 463
Par défaut UPDATE sur tout une table

Bonsoir à tous.

Code :
1
2
3
4
5
6
7
8
9
10
CREATE TABLE T_CALIBRE (
	CAL_CODE char(8) NOT NULL,
	CAL_POIDS_MINI int NULL,
	CAL_POIDS_MAXI int NULL,
	CAL_POIDS_MOYEN int NULL)
 
INSERT INTO T_CALIBRE VALUES ('0', 100, NULL, NULL)
INSERT INTO T_CALIBRE VALUES ('1', 80, 99, NULL)
INSERT INTO T_CALIBRE VALUES ('2', 65, 79, NULL)
INSERT INTO T_CALIBRE VALUES ('3', 35, 64, NULL)
Je cherche à calculer le poids moyen de chaque calibre. Que dois je utiliser pour faire ca, une CTE, un requete pivot ou une requete simple ?

Je ne vous demande pas de requete toute faite mais le moyen le plus simple pour parcourir toute la table et mettre à jour le champ CAL_POIDS_MOYEN.

Merci.
ddaime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 22h09   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 431
Points : 10 431
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Le poids moyen par objet ? C'est assez simple.
Pour mettre à jour toute la table, il suffit de ne pas mettre de filtre dans le WHERE (et donc pas de clause WHERE).
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 22h21   #3
Membre éprouvé
 
Inscription : février 2006
Messages : 426
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : février 2006
Messages : 426
Points : 463
Points : 463
J'ai pas tout saisi ! En fait je dois parcourir toute la table pour mettre a jour le champ CAL_POIDS_MOYEN mais je ne sais pas comment m'y prendre.

Je veux écrire une PS qui effectue cette tache mais je ne sais pas si je dois utiliser une CTE, une requete PIVOT ou une simple requete.
ddaime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 22h53   #4
Membre éprouvé
 
Inscription : février 2006
Messages : 426
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : février 2006
Messages : 426
Points : 463
Points : 463
Bon, j'ai trouvé.

En une seule requete

Code :
1
2
UPDATE CALIBRE
SET CAL_POIDS_MOYEN = (CAL_POIDS_MINI + CAL_POIDS_MAXI) / 2
J'suis vraiment fatigué en ce moment !
ddaime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 04h30   #5
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Code :
SET CAL_POIDS_MOYEN = (CAL_POIDS_MINI + CAL_POIDS_MAXI) / 2
Vous avez une manière toute personnelle de calculer une moyenne...
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 09h52   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Si c'est çà votre 'moyenne' faites une colonne calculée pour CAL_POIDS_MOYEN
Sinon toute mise à jour de l'une des colonnes MIN ou MAX rendra erronnée la valeur contenue dans CAL_POIDS_MOYEN.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk 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 00h48.


 
 
 
 
Partenaires

Hébergement Web