Ajout de lettres en fonction du nombre de transactions dans SQL SERVER

Besoin d'une requête SQL pour append les lettres à la colonne entier Mes données exemple seraient comme

+--------+----------+--------+ | Number | Date | amount | +--------+----------+--------+ | 135 | 20160901 | $10 | | 135 | 20160912 | $20 | | 135 | 20160915 | $30 | +--------+----------+--------+ 

Aurait besoin d'une sortie comme ci-dessous, les résultats devraient être basés sur Date

 +--------+--------+ | Number | amount | +--------+--------+ | 135X | $10 | | 135XX | $20 | | 135XXX | $30 | +--------+--------+ 

X est ajouté une fois, dans le premier logging parce que l'logging a été la première transaction dans un mois, XX dans la seconde car il s'agissait de la deuxième transaction et ainsi de suite, doivent append le 'N' non de X en fonction du nombre de fois un mois.

Veuillez suggérer

Voici une méthode:

 select (cast(number as varchar(255)) + replicate('X', row_number() over (partition by number, year(date), month(date) order by date) ) ) as number, amount from t; 

Vous pouvez utiliser une logique similaire pour mettre à jour la colonne Number , en supposant qu'il s'agit d'une colonne de string nommée de manière maladroite.