我有一张桌子
ItemPriceId
版本
PricingSchemeID
单价
LastModUser
LastModDttm
时间戳
ProdId
此表包含约1300种商品的多种定价方案
我想要做的是将其中一个方案改为另一个方案的倍数
所以如果PricingSchemeID = 102
我想将每个UnitPrice更新为等于每个ProdId的PricingSchemeID = 100(UnitPrice * 1.40)
以下是示例数据:
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
感谢您提前提供任何帮助。
答案 0 :(得分: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