Обновление 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