2015-05-07 39 views
0

我有一個表SQL UPDATE場從另一行與標準

ItemPriceId
版本
PricingSchemeID
單價
LastModUser
LastModDttm
時間戳
PRODID

此表包含多個約1300項物品的定價方案。
我想要做的是將這些方案之一改爲另一個方案的倍數。
因此,如果PricingSchemeID = 102
我要更新的每個單價爲等於PricingSchemeID = 100的(單價* 1.40)爲每個PRODID

下面是示例數據:

ItemPriceId PricingSchemeID UnitPrice ProdId 
    1    100   10.25  1 
    2    100   18.52  2 
    3    100   12.25  3 
    4    100   19.00  4 
    5    100   21.00  5 
    6    101   16.62  1 
    7    101   15.84  2 
    8    101   12.95  3 
    9    101   8.25  4 
    10   101   6.50  5 
    11   102   63.95  1 
    12   102   44.25  2 
    13   102   75.26  3 
    14   102   96.25  4 
    15   102   56.58  5 
    16   103   12.25  1 
    17   103   13.25  2 
    18   103   14.25  3 
    19   103   15.25  4 
    20   103   16.25  5 
    21   104   25.35  1 
    22   104   53.26  2 
    23   104   15.65  3 
    24   104   43.65  4 
    25   104   96.35  5 

所以應該這樣做:

ItemPriceId PricingSchemeID UnitPrice ProdId 
    11   102   14.35  1 
    12   102  25.928  2 
    13   102   17.15  3 
    14   102   26.60  4 
    15   102   29.40  5 

感謝您的任何幫助提前。

回答

1

下面是一個select語句,代表您在之後將自己的表加入表中的內容。

SELECT yt1.itempriceid 
    , yt1.pricingschemeid 
    , yt2.unitprice * 1.4 
    , yt1.prodid 
FROM yourTable yt1 
    JOIN yourTable yt2 ON yt1.prodid = yt2.prodid 
WHERE yt1.pricingschemeid = 102 
    AND yt2.pricingschemeid = 100 

這裏和更新一樣。

UPDATE yt1 
SET yt1.unitprice = yt2.unitprice * '1.4' 
FROM yourTable yt1 
    JOIN yourTable yt2 ON yt1.prodid = yt2.prodid 
WHERE yt1.pricingschemeid = 102 
    AND yt2.pricingschemeid = 100 
+0

非常感謝。工作很好。 – Devilsphere