0

自分がやろうとしていることを明確に説明するために最善を尽くします。

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

よろしくお願いします。

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 に答える