0

重複 ID と一意 ID を含むテーブルがあります。たとえば、すべての取引手数料に 10 セントを追加し、複製された注文の最初の行に 10 セントを追加します。

What i start with:
order# Fee    
123    5    
123    4    
111    3
122    5

what I should get: 

order# Fee     
123    5.1    --duplicates
123    4.0    --should not have 10 cents. 
111    3.1
122    5.1

以下のコードを使用してみましたが、すべての注文が更新されます#

-- updates table adds 10 cents to the first order of each duplicate and every unique order
update ebaytemp
set [transaction fees] = [transaction fees] +.10
from (SELECT [order#] 
from ebaytemp
GROUP BY order#
HAVING COUNT(order#) > 1) as E
4

1 に答える 1

0

トランザクションがいつ入力されたかを追跡するdatetimeまたは列がある場合 (どうすればできませんか?)、その列に基づいて「最初の行」を作成し、次を使用できます。timestamp

UPDATE ebaytemp a
INNER JOIN
(
    SELECT ordernum, MIN(date_entered) AS minentered
    FROM ebaytemp
    GROUP BY ordernum
) b ON a.ordernum = b.ordernum AND a.date_entered = b.minentered
SET a.fee = a.fee + 0.10
于 2012-07-23T22:05:38.480 に答える