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 08/05/2008, 17h11   #1
Invité de passage
 
Inscription : mars 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 14
Points : 2
Points : 2
Par défaut update + incrémenter compteur

Bonjour,
J'ai trouvé dans un forum un truc pour faire

C Version

A 1
A 2
A 3
B 1
B 2
C 1
la table est nommée t1

UPDATE t1 a SET version = (SELECT rnum
FROM (SELECT rowid,
row_number () over (partition BY c ORDER BY c) rnum
FROM t1)
WHERE rowid = a.rowid);
je pense que ça marche sous oracle mais sous sqlserver (j'ai des erreurs)

Merci po
elkhanssaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 22h15   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
La notion de ligne positionnelle n'existe pas dans SQL Server (elle ne devrait pas exister dans aucun SGBDR... Oracle étant tout à fait fantaisiste sur le sujet).

Néanmoins vous pouvez obtenir votre table comme ceci (v 2000) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
CREATE TABLE TXY (COL1 CHAR(1), COL2 INT)
 
INSERT INTO TXY VALUES ('A', NULL)
INSERT INTO TXY VALUES ('A', NULL)
INSERT INTO TXY VALUES ('A', NULL)
INSERT INTO TXY VALUES ('B', NULL)
INSERT INTO TXY VALUES ('B', NULL)
INSERT INTO TXY VALUES ('C', NULL)
 
CREATE TABLE T_NUM (N INT)
INSERT INTO T_NUM VALUES (1)
INSERT INTO T_NUM VALUES (2)
INSERT INTO T_NUM VALUES (3)
...
INSERT INTO T_NUM VALUES (99999)
 
 
SELECT COL1, N
FROM   (SELECT COL1, COUNT(*) AS C
        FROM   TXY
        GROUP  BY COL1) AS T
       INNER JOIN T_NUM 
             ON N BETWEEN 1 AND C
ORDER BY COL1, N
Ou à l'aide du ROW_NUMBER() OVER (...) sous SQL Server 2005.

mais quel intérêt de conserver cette données ?

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 11h22   #3
Invité de passage
 
Inscription : mars 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 14
Points : 2
Points : 2
merci pour ta réponse ,mais je voulais une requette ou une procedure qui calcule en faisant un update pour faire la chose suivante:

date objet leg
12/02/2002 X leg1
12/02/2002 X leg2
12/02/2002 X leg3
12/02/2002 Y leg1
12/02/2002 Y leg2

Merci
elkhanssaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 11h23   #4
Invité de passage
 
Inscription : mars 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 14
Points : 2
Points : 2
je signale que je travaille ss sqlserver2005
elkhanssaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h53.


 
 
 
 
Partenaires

Hébergement Web