Afficher les valeurs de colonne une seule fois

Supposé que j'ai le tableau suivant. Comment afficher 'montant' une seule fois en fonction de l' ID colonne?

  ID Amount 1 10.00 1 10.00 1 10.00 2 10.00 2 10.00 2 10.00 

Étant donné l'exemple ff, la sortie attendue devrait être la suivante:

  ID Amount 1 10.00 1 0.00 1 0.00 2 10.00 2 0.00 2 0.00 

J'ai essayé d'utiliser ROW_NUMBER mais ce n'est pas suffisant, c'est en me donnant ce résultat.

  ID Amount 1 10.00 1 0.00 1 0.00 2 0.00 2 0.00 2 0.00 

EDIT: C'est ce que j'ai essayé jusqu'à présent:

 SELECT ID ,CASE WHEN ROW_NUMBER() OVER(PARTITION BY Amount ORDER BY ID) = 1 THEN Amount ELSE 0.00 END [AMOUNT] FROM TABLE 

Changez simplement votre partition pour utiliser l'identifiant:

 SELECT ID ,CASE WHEN ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) = 1 THEN Amount ELSE 0.00 END [AMOUNT] FROM TABLE Order by ID, Amount Desc 

Cela devrait le faire:

 select id, iif(id=lag(id,1,0), 0, amount) from mytable order by id 

En fait, si l'identifiant courant est le même que l'identifiant d'une ligne, utilisez 0. Dans le cas contraire, utilisez la colonne montant.

Je suppose, à partir des données que vous avez fournies, que le «montant» rest le même pour tout identifiant unique.