ROW_NUMBER & PARTITION

J'essaie d'utiliser ROW_NUMBER OVER PARTITION pour ROW_NUMBER OVER PARTITION certaines valeurs à less que quelqu'un ne puisse suggérer un meilleur moyen, mes données ressemblent à ceci

 create table Emp_Details ( Emp_Name varchar(10) , Company varchar(15) ,Qty int ,LineOrderCost money ,OrderUnitCost money ,ExtraCost money ,ExtraDesc varchar(5) ) insert into Emp_Details (Emp_Name, Company, Qty, LineOrderCost, OrderUnitCost, ExtraCost, ExtraDesc) values ('John', 'PStock', 1, '2.50','3.50', '7.50', 'ABC') ,('John', 'PStock', 1, '2.50','3.50', '7.50', 'DEF') 

Ce que je veux faire est de returnner les deux loggings, mais mettre LineOrderCost , OrderUnitCost , ExtraCost à 0 sur la deuxième ligne ou s'il y a plus de 2 lignes toutes les lignes suivantes après le premier, donc quand Emp_Name , Company et Qty sont les mêmes mais l'ExtraDesc est différent de vider ces valeurs comme décrit.

Je m'excuse si je ne l'ai pas bien décrit mais dans ma tête ça a un sens 🙂

Merci P

  Select EMP_NAME,COMPANY,QTY, EXTRADESC, Case when row>1 then 0 else ORDERUNITCOST end as ORDERUNITCOST, Case when row>1 then 0 else LINEORDERCOST end as LINEORDERCOST, Case when row>1 then 0 else EXTRACOST end as EXTRACOST from (Select Row_Number() Over(Partition By EMP_NAME order by EMP_NAME) as row,* from Emp_Details) t 

Sql Fiddle Demo