[SQL] compteur dans une requête

Salut,
voilà un petit description de ma base:
un table contient des commandes, à chaque commande est assigné un numéro de facture (plusieurs commandes peuvent avoir le même numéro de facturation)
Je souhaite avoir une requête me permettant de sortir:
CommandeID,PrixCommande,FactureID,Nr
1001,50,F1,1
1002,78,F1,2
1003,98,F1,3
1004,10,F2,1
1005,65,F2,2
1006,34,F3,1
1007,98,F4,1
1008,58,F4,2

Pas de problème pour les 3 premières colonnes, par contre la dernière je ne vois pas comment faire: c’est en fait un compteur tout con qui s’incrémente à chaque commande d’une facture.
Quelqu’un voit comment faire ça sous SQL Server?

Inspires toi de cela msdn: How to dynamically number rows in a SELECT Transact-SQL statement

edit: à moins de pouvoir utiliser rank() OVER, si tu as sql server 2005, c’est pas si simple ton problème.

Y a une couille dans ton exemple. Si une facture existe déjà dans une commande précédente, tu ne devrais pas aussi incrémenter la valeur dans la première commande qui référencie la facture ?

Ce qui donne ca :
1001, Facture1, 1
1002, Facture2, 2
1003, Facture2, 2
1004, Facture3, 1

non non son exemple est très compréhensible et vraisemblable. Il veut un numéro incrémental qui redémarre à chaque nouvelle facture.

S’il veut faire ca, il peut faire une requete qui va relever le nombre de commande où la facture est référencé (SELECT COUNT(maFactureID)). Ou plutot devrais je dire, faire une procédure stockée tout simplement ^^ avec une boucle pour chaque factureID. Et tu fais un update de cette valeur incrémentale sur la table en question.

A vue de nez, tu aurais un petit :

SELECT CommandeID, PrixCommande, FactureID, rank() over (partition by FactureID order by CommandeID) as Nr FROM MyTable

Enjoy les fonctions analytiques

OKOK, j’avais pas vu le poste de phili_b ^^

comment on peut avoir le meme traitement et cela en faisant un update? c a d en stockant cette valeur dans un champ de la meme table
merci

En utilisant un UPDATE avec jointure, comme expliqué dans cet autre sujet.

Merci (un peu en retard, j’avoue).