L
l0nley
Исходная:
есть таблица price_supplier:
есть вторая таблица td_avail:
Описание таблиц:
price_supplier - Таблица наличия товара у данного поставщика. Для каждого из поставщиков
существует отдельная таблица с именем price_<поставщик>.
td_avail - таблица наличия товаров у всех поставщиков.
Товары идентифицируются парой (orphan,partnum)
Задача:
Известно сразу - поставщик supplier='какойто поставщик'
Если товар (orphan,partnum,supplier) есть в таблице price_supplier и в таблице td_avail -> обновить
данные о товаре из таблицы price_supplier в таблице td_avail для данного поставщика
Если товар (orphan,partnum,supplier) есть в таблице price_supplier но нету в td_avail - > добавить
товар (orphan,partnum,supplier,description...) в таблицу td_avail
Если товар (orphan,partnum,supplier) есть в таблице td_aval, но нету в таблице price_supplier ->
удалить товар (orpha,partnum,supplier) из таблицы td_avail
Интересует не решение "в лоб", а как это сделать в один запрос?
рыл в сторону MERGE ничего не нарыл по последнему пункту.
в ответах желательно диалект TSQL для MSSQL 2000
есть таблица price_supplier:
Код:
orphan char(50) not null,
partnum char(50) not null,
descr char(100) default 'Нет описания',
amount_s char(5) not null default '0',
skv_code char(5) not null default 'EUR',
price float not null
есть вторая таблица td_avail:
Код:
orphan char(50) not null,
partnum char(50) not null,
description char(100) not null default 'Нет описания',
amount_s char(5) not null default '0',
currency char(5) not null default 'EUR',
price float not null,
supplier char(50) not null default 'My company'
Описание таблиц:
price_supplier - Таблица наличия товара у данного поставщика. Для каждого из поставщиков
существует отдельная таблица с именем price_<поставщик>.
td_avail - таблица наличия товаров у всех поставщиков.
Товары идентифицируются парой (orphan,partnum)
Задача:
Известно сразу - поставщик supplier='какойто поставщик'
Если товар (orphan,partnum,supplier) есть в таблице price_supplier и в таблице td_avail -> обновить
данные о товаре из таблицы price_supplier в таблице td_avail для данного поставщика
Если товар (orphan,partnum,supplier) есть в таблице price_supplier но нету в td_avail - > добавить
товар (orphan,partnum,supplier,description...) в таблицу td_avail
Если товар (orphan,partnum,supplier) есть в таблице td_aval, но нету в таблице price_supplier ->
удалить товар (orpha,partnum,supplier) из таблицы td_avail
Интересует не решение "в лоб", а как это сделать в один запрос?
рыл в сторону MERGE ничего не нарыл по последнему пункту.
в ответах желательно диалект TSQL для MSSQL 2000