У меня есть таблица с одной записью. Мне нужно обновить 8 полей в другой таблице на основе столбца TYPE одной записи. Я думал, что дело «Дело» - это путь, но я вытаскиваю своего зайца! Я искал и видел некоторые примеры, которые приближаются, но не совсем! любая помощь пожалуйста! вот мой код.Использование оператора Case для обновления другой таблицы
UPDATE [dbo].[PART_DIMENSION]
SELECT [SELL_PACK],
CASE q.PACK_TYPE WHEN 'SELL' then 1,
[SELL_PACK_UOM] = Q.PACK_ASSMBY,
[SELL_PACK_QTY] = Q.QTY,
[SELL_PACK_LENGTH] = Q.LENGTH,
[SELL_PACK_WIDTH] = Q.WIDTH,
[SELL_PACK_HEIGHT] = Q.HEIGHT,
[SELL_PACK_WEIGHT] = Q.WEIGHT,
[SELL_PACK_INNER_QTY] = Q.INNER_QTY,
[SELL_PACK_CAN_NEST] = Q.CAN_NEST,
[SELL_PACK_NEED_RETAIL_PACK] = Q.NEED_RETAIL_PACK
FROM PART_DIMENSION as a
INNER JOIN Qubiscan as q
on a.part_id=q.part_id
WHEN q.PACK_TYPE='INNER' then
SET[INNER_PACK] = 1,
[INNER_PACK_UOM] = Q.PACK_ASSMBY,
[INNER_PACK_QTY] = Q.QTY,
[INNER_PACK_LENGTH] = Q.LENGTH,
[INNER_PACK_WIDTH] = Q.WIDTH,
[INNER_PACK_HEIGHT] = Q.HEIGHT,
[INNER_PACK_WEIGHT] = Q.WEIGHT
FROM PART_DIMENSION as a
INNER JOIN Qubiscan as q
on a.part_id=q.part_id
WHEN q.PACK_TYPE='MASTER' then
SET[MASTER_PACK] = 1,
[MASTER_PACK_UOM] = Q.PACK_ASSMBY,
[MASTER_PACK_QTY] = Q.QTY,
[MASTER_PACK_LENGTH] = Q.LENGTH,
[MASTER_PACK_WIDTH] = Q.WIDTH,
[MASTER_PACK_HEIGHT] = Q.HEIGHT,
[MASTER_PACK_WEIGHT] = Q.WEIGHT
FROM PART_DIMENSION as a
INNER JOIN Qubiscan as q
on a.part_id=q.part_id
Великий Давид! Мне пришлось переместить ОТ и ПРИСОЕДИНЯТЬ после SET, но я хорошо работаю! И намного проще, чем я изначально предполагал. Благодаря непальскому новичку. Я не использовал его решение, но я уверен, что это сработало бы так же хорошо! – Wakgtech
Добро пожаловать! Должен был осознать себя, я поставил SET в неправильном месте - вот что я получаю за то, что у меня что-то в голове, фактически не думая * все это через LOL. Рад помочь. –