Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Цикл с меняющей переменной. SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Приведите, пожалуйста, пример организации цикла с update и меняющей переменной.

SELECT * FROM PARTNER
WHERE PART_KEY = '7527'

Данный запрос может вернуть как одно, так и несколько значений.
Задача, взять этот список значений, у значения с Flag = 1 взял GEO и проставить этот GEO во всех значения по запросу.
И так проделать со всеми PART_KEY в таблице.
5 мар 13, 10:43    [14012560]     Ответить | Цитировать Сообщить модератору
 Re: Цикл с меняющей переменной. SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
UPDATE a SET geo = b.geo
FROM partner a
INNER JOIN partner b ON a.<primary/unique_key> = b.<primary/unique_key> AND b.PART_KEY = '7527' and b.FLAG = 1
5 мар 13, 10:48    [14012606]     Ответить | Цитировать Сообщить модератору
 Re: Цикл с меняющей переменной. SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Это хорошо.
Но как сделать цикл в перебором всех PART_KEY в таблице.
Вручную не реально, их очень много.
5 мар 13, 11:50    [14013150]     Ответить | Цитировать Сообщить модератору
 Re: Цикл с меняющей переменной. SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
r18romik
Но как сделать цикл в перебором всех PART_KEY в таблице.

Убрать AND b.PART_KEY = '7527'
5 мар 13, 11:53    [14013185]     Ответить | Цитировать Сообщить модератору
 Re: Цикл с меняющей переменной. SQL  [new]
Гость333
Member

Откуда:
Сообщений: 3683
r18romik
цикл в перебором всех PART_KEY в таблице.

UPDATE a
SET GEO = b.GEO
FROM partner a
     INNER JOIN partner b ON a.PART_KEY = b.PAT_KEY and b.FLAG = 1
WHERE a.FLAG <> 1 OR a.FLAG IS NULL
5 мар 13, 11:55    [14013216]     Ответить | Цитировать Сообщить модератору
 Re: Цикл с меняющей переменной. SQL  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Гость333
UPDATE a
SET GEO = b.GEO
FROM partner a
     INNER JOIN partner b ON a.PART_KEY = b.PART_KEY and b.FLAG = 1
WHERE a.FLAG <> 1 OR a.FLAG IS NULL

Опечатался
5 мар 13, 11:56    [14013226]     Ответить | Цитировать Сообщить модератору
 Re: Цикл с меняющей переменной. SQL  [new]
r18romik
Member

Откуда:
Сообщений: 169
Спасибо. Протестировал на временной таблице, вроде корректно поставилось.
5 мар 13, 12:15    [14013414]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить