0

我将尽我所能清楚地描述我正在尝试做的事情。

我正在使用 DBISAM SQL 数据库。

我们出售 T 恤和许多不同种类的 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

在此先感谢您的帮助!

4

1 回答 1

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
于 2012-07-09T19:09:04.617 回答