Обновление SQL на основе и выберите результат из той же таблицы

Я сделаю все возможное, чтобы четко описать, что я пытаюсь сделать.

Я использую базу данных SQL DBISAM.

Мы продаем футболки и много разных видов. Я пытаюсь обновить нашу базу данных о продуктах значениями из других продуктов в базе данных. вот образец:

Таблица продуктов

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, но я бы хотел получить LongDesc из других SKU с тем же продуктом

В конце я бы хотел, чтобы таблица выглядела так:

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

Заранее спасибо за помощь!

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
Другие вопросы по тегам