あなたはcursor
でこれを行うことができます。以下の例は、あなたが望むものを処理する必要があります。 #tableをテーブルの名前に置き換える必要があります。醜いですが、罪として醜いですが、それは動作します;)
CREATE TABLE #Table
(
client NVARCHAR(100),
cost int,
client1 int
);
INSERT INTO #Table
VALUES
('Paula',100,null),
('Paula',50,null),
('Jacob',300,null),
('Paula',120,null);
DECLARE @clientColumn nvarchar(100);
DECLARE @Dup int;
DECLARE client_cursor CURSOR FOR
SELECT client,cost FROM #Table ORDER BY client,cost
OPEN client_cursor;
FETCH NEXT FROM client_cursor INTO @clientColumn
WHILE @@FETCH_STATUS=0
BEGIN
set @dup = (SELECT TOP 1 cost FROM #Table WHERE client = @clientColumn GROUP BY client ORDER BY cost desc)
UPDATE #Table
SET
client1 = 1
WHERE client = @clientColumn AND cost = @dup
FETCH NEXT FROM client_cursor INTO @clientColumn
END
CLOSE client_cursor
DEALLOCATE client_cursor;
UPDATE #Table
SET
client1 = 0
WHERE client1 IS NULL
SELECT * FROM #Table
同じコストで重複があったらどうすればいいのでしょうか? – cableload