Try this,if it do not work with other sample data then let me know,
Declare @t table(ID varchar(50), Value varchar(50), Amount float)
insert into @t values(1,'A',10.00),(2,'B', 4.25),(3,'C',2.01)
,(4,'D',5.00 )
--Get the maxid
declare @MaxID int=(Select max(id) from @t)
;WITh CTE AS
(
SELECT ID,
STUFF((select ','+ id from @t where id IN(1,2) for xml path('')),1,1,'') [id1]
,STUFF((select ','+ Value from @t where id IN(1,2) for xml path('')),1,1,'') [Value]
,STUFF((select ','+ cast(Amount as varchar) from @t where id IN(1,2) for xml path('')),1,1,'') [Amount]
,1 RN
FROM @T a WHERE ID=1
UNION ALL
SELECT B.ID,
STUFF((select ','+ id from @t where id IN(RN+2,RN+3) for xml path('')),1,1,'')
,STUFF((select ','+ Value from @t where id IN(RN+2,RN+3) for xml path('')),1,1,'')
,STUFF((select ','+ cast(Amount as varchar) from @t where id IN(RN+2,RN+3) for xml path('')),1,1,'')
, RN+2
FROM cte a
CROSS APPLY(SELECT * FROM @T WHERE ID=RN+2 AND ID<=@MaxID) B
)
SELECT ID1,Value,Amount FROM CTE