Консультация № 78141
13.03.2007, 17:39
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, как сделать запрос в БД Access по типу: if id=1 then id_sales:="Cola", т.е. как организовать вычисления или присвоения, если для этого должно выполняться какое-то условие? Спасибо.

Обсуждение

Неизвестный
13.03.2007, 17:44
общий
это ответ
Здравствуйте, Piit!
Для изменения записей в таблице служит команда UPDATE. Для вашего примера запрос будет такой:
<i>UPDATE `table` SET `id_sales` = "Cola" WHERE `id` = 1</i>
В результате во всех записях, где id = 1 поле id_sales примет значение "Cola".
Желаю удачи!
Неизвестный
13.03.2007, 18:23
общий
это ответ
Здравствуйте, Piit!
В некоторых SQL запросах, в частности в Access, будет работать такая запись ( все примеры из рабочих программ ) :

select obname, gr , iif ( nal = true , ‘Да‘ , ‘Нет‘ ) as na , iif ( bux = true , ‘Да‘ , ‘Нет‘ ) as bu from base

update base set m4_n=int ( ( price-izn_n-m1_n-m2_n-m3_n ) *100 * iif ( n_sch = ‘1‘ , 0.05 , iif ( n_sch = ‘2‘ , 0.25 ,0.15 ) ) / 4 + 0.5 ) / 100 WHERE nal = true and gr = 1 and not ( go = 8 and n_sch = ‘1‘ ) and shifr < 99999

По количеству вложений функции iif ( ) у меня получалось до 7, в теории не ограничено.

При работе с SQL Server функция iif ( ) не работает, нужно использовать оператор
CASE
WHEN условие THEN команды
..
ELSE команды
END

select HMnac as nac , HMpos as pos , cast ( HOst as float ) / 100 as dolg , ( CASE WHEN HZakr <= cast ( ‘1.1.2002‘ AS smalldatetime ) THEN ‘‘ ELSE ‘<>‘ END ) AS zak, * from Mir

С уважением.
Форма ответа