我需要用产品价格更新一栏。产品可以与订单相同,也可以与订单相似。 当产品相同时,这很容易。 但是,当产品相似时,并非所有特征都与订购表相同,因此我不知道该如何进行匹配。 到目前为止,我已经编写了这样的查询:
Update #SelledProducts
Set S.Price=O.Price
FROM
#SelledProducts S, #OrdersWithPrice O
WHERE S.MandatoryCharacteristic1=O.MandatoryCharacteristic1
AND S.MandatoryCharacteristic2=O.MandatoryCharacteristic2
AND S.MandatoryCharacteristic3=O.MandatoryCharacteristic3
--Te following is wrong:
...
AND S.OptionalCharacteristic1=O.OptionalCharacteristic1
AND S.OptionalCharacteristic2=O.OptionalCharacteristic2
但是当OptionalCharacteristics不相等时,它当然不起作用。具有可选特征,我的意思是: 该订单可以有一个红色框,但是如果没有红色框,则该订单可以有任何颜色框。
我该如何实现?我正在使用SQL Server 2008。 谢谢
答案 0 :(得分:0)
您可以在查询中使用OR
条件而不是AND
来获取可选特征。
请为它找到以下示例。
Update #SelledProducts
Set S.Price=O.Price
FROM
#SelledProducts S, #OrdersWithPrice O
WHERE S.MandatoryCharacteristic1=O.MandatoryCharacteristic1
AND S.MandatoryCharacteristic2=O.MandatoryCharacteristic2
AND S.MandatoryCharacteristic3=O.MandatoryCharacteristic3
--Te following is wrong:
...
AND ( S.OptionalCharacteristic1=O.OptionalCharacteristic1
OR S.OptionalCharacteristic2=O.OptionalCharacteristic2)