![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналог DECODE в MSAccess
Kerk © (2004-11-11 13:31:00)Есть ли в MSAccess аналог оракловской DECODE ?
Т.е. нужно выполнить запрос вида:
INSERT INTO MP ( NAME, INDEX, ADRES, LIKV ) SELECT MUP.NAME, MUP.INDEX, MUP.ADRES, DECODE(MUP.LKVD,'Л','Есть','Нет') FROM MUP "
Kerk (2004-11-12 13:36:00) [1]sniknik благодарю за помощь. вопрос решен. сам не знаю как. просто взяло и заработало. :)
sniknik (2004-11-12 13:01:00) [2]> WHERE (((VIBOR.VIBOR)=True))
VIBOR.VIBOR поле индексировано? скобки лишние просто VIBOR.VIBOR=True ставь
нет, хватит WHERE VIBOR.VIBOR
"INSERT INTO MP (NAME,INDEX,ADRES,LIKV) SELECT MUP.NAME, MUP.INDEX, MUP.ADRES, IIF(MUP.LKVID,'Ликвидировано','') AS LIKV FROM MUP INNER JOIN VIBOR ON MUP.OKPO = VIBOR.OKPO WHERE VIBOR.VIBOR"
вот так какую ошибку дает?
и без вставки запрос на выборку сам по себе проходит?
"SELECT MUP.NAME, MUP.INDEX, MUP.ADRES, IIF(MUP.LKVID,'Ликвидировано','') AS LIKV FROM MUP INNER JOIN VIBOR ON MUP.OKPO = VIBOR.OKPO WHERE VIBOR.VIBOR"
Kerk (2004-11-12 12:51:00) [3]
> sniknik © (12.11.04 12:46) [8]
Пишу на VBA ... AS LIKV не помогает. :(
sniknik (2004-11-12 12:46:00) [4]MUP.LKVID тип boolean? тогда правильно. если только в том в чем ты пишеш задвоение кавычек в строке означает то же что и в дельфях.
попробуй AS LIKV добавить.
Kerk (2004-11-12 12:43:00) [5]
> sniknik © (12.11.04 12:39) [6]
:))
Мне нужно, чтоб если MUP.LKVID=TRUE в MP.LIKV написалось "Ликвидировано" иначе пустую строку.
sniknik (2004-11-12 12:39:00) [6]по моему ктото когото не понимает.. :(
думаеш мне твое желание выраженное в неправильной команде аксесовского sql понятнее стало? или считаеш выделение жирным проясняет?
тогда тебе это поможет понять
я не знаю что ты своим декодом делаеш.
если по ошибке судить
> Too few parameters
возможно ему хочется AS LIKV после выражения (но скорее всего изза неправильности он его проигнорировал и не считает параметром для подстановки)
Kerk (2004-11-12 12:18:00) [7]
dbs.Execute ("INSERT INTO MP ( NAME, INDEX, ADRES , LIKV) SELECT MUP.NAME, MUP.INDEX, MUP.ADRES, IIF(MUP.LKVID,""Ликвидировано"","""")FROM MUP " _
& "INNER JOIN VIBOR ON MUP.OKPO = VIBOR.OKPO WHERE (((VIBOR.VIBOR)=True));"), dbFailOnError
говорит Too few parameters. Expected 1. Если убрать выделенное жирным, все работает.
sniknik (2004-11-12 12:03:00) [8]чего? забыл, я не знаю что ты своим декодом делаеш.
Kerk (2004-11-12 11:32:00) [9]Блин, нифига не работает. Приведи пример плиз :)
Kerk (2004-11-12 11:08:00) [10]DECODE штука помощнее, но судя по TFM IIF меня здесь устроит.
sniknik (2004-11-11 13:52:00) [11]iif судя по всему, по догадкам (если б знать что этот DECODE делает...)