我会尽力清楚地描述我想要做的事情。
我正在使用DBISAM SQL数据库。
我们销售T恤衫,种类繁多。我正在尝试使用数据库中其他产品的值更新我们的产品数据库。这是一个样本:
产品表
SKU Product LongDesc
01-S 01 Great Looking T-Shirt
01-M 01
01-L 01
02-S 01
02-M 01 Amazing Ladies T
02-L 01
03-32 03 Long t
03-34 03
03-36 03
我想写一个更新脚本,它将更新没有 LongDesc 的所有 SKU 上的 LongDesc 字段但我希望用其他 SKU 来实现 LongDesc ,并使用相同的产品
最后我会像这样看待表:
SKU Product LongDesc
01-S 01 Great Looking T-Shirt
01-M 01 Great Looking T-Shirt
01-L 01 Great Looking T-Shirt
02-S 01 Amazing Ladies T
02-M 01 Amazing Ladies T
02-L 01 Amazing Ladies T
03-32 03 Long t
03-34 03 Long t
03-36 03 Long t
提前感谢您的帮助!
答案 0 :(得分:1)
试试这个:
UPDATE p
SET p.longdesc = pp.longdesc
FROM products p
INNER JOIN
(
SELECT a.sku, MAX(a.longdesc) AS longdesc
FROM
(
SELECT LEFT(sku FOR (POS('-', sku) - 1)) AS sku, longdesc
FROM products
) a
GROUP BY a.sku
) pp ON LEFT(p.sku FOR (POS('-', p.sku) - 1)) = pp.sku