Это работает для всех чисел, которые нуждаются только в римских цифрах M и ниже.
function convert(num) {
var code = [
[1000, "M"], [900, "CM"], [800, "DCCC"], [700, "DCC"], [600, "DC"],
[500, "D"], [400, "CD"], [300, "CCC"], [200, "CC"],
[100, "C"], [90, "XC"], [80, "LXXX"], [70, "LXX"], [60, "LX"],
[50, "L"], [40, "XL"], [30, "XXX"], [20, "XX"],
[10, "X"], [9, "IX"], [8, "VIII"], [7, "VII"], [6, "VI"],
[5, "V"], [4, "IV"], [3, "III"], [2, "II"], [1, "I"],
];
var rom = "";
for(var i=0; i<code.length; i++) {
while(num >= code[i][0]) {
rom += code[i][1];
num -= code[i][0];
}
}
return rom;
}
Вы также можете попробовать выполнить следующее
select id,cust_id,amount
from YourTable t1
where id =(select max(t2.id) from YourTable t2 where t2.Cust_ID=t1.Cust_ID)
order by id
. используйте row_number()
select * from
(
select *,
row_number() over(partition by cust_id order by Amount desc) rn
from tabl
) t where rn=1
или используйте подзапрос Corelate
select t1.* from table t1
where t1.Amount= (select max(Amount) from table t2
where t1.cust_id=t2.cust_id)
Вы можете попробовать использовать row_number()
select * from
(
select *,row_number() over(partition by cust_id order id desc) rn from tablename
)A where rn=1