Hemil Gandhi Ответов: 1

Самый высокий ранг для одного и того же клиента


У меня есть около 10 000 клиентских данных, содержащих номер клиента, номер счета и ранг счета (1,2,3,4). несколько клиентов имеют несколько номеров счетов. я хочу обновить самый высокий ранг для уникального номера клиента, то есть ранг счета должен быть одинаковым для одного клиента.

Дайте мне знать запрос, чтобы получить такие данные и обновить их.

пример.

Customer, account, rank
a,1,0
b,2,1
a,3,3
a,4,2
c,5,0


поэтому в приведенном выше случае я требую обновить rank=3 для номера счета 1 & 4.

Что я уже пробовал:

select customer,max(rank) where count(customer)>1 group by customer

Maciej Los

Ваш оператор select недействителен, поэтому вы не можете получить вышеуказанный результат.

1 Ответов

Рейтинг:
4

Maciej Los

Попробовать это:

DECLARE @customer TABLE(Customer VARCHAR(50), account int, [rank] int)

INSERT INTO @customer (Customer, account, [rank])
VALUES('a',1,0),
('b',2,1),
('a',3,3),
('a',4,2),
('c',5,0)

UPDATE t1 SET [rank] =  t2.MaxRank
FROM @Customer t1 INNER JOIN 
	(
		SELECT Customer, MAX([rank]) MaxRank 
		FROM @customer
		GROUP BY Customer
		) t2 
	ON t1.Customer  = t2.Customer