Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Аналог DECODE в MSAccess   Найти похожие ветки 

 
Kerk ©   (2004-11-11 13:31) [0]

Есть ли в MSAccess аналог оракловской DECODE ?
Т.е. нужно выполнить запрос вида:
INSERT INTO MP ( NAME, INDEX, ADRES, LIKV ) SELECT MUP.NAME, MUP.INDEX, MUP.ADRES, DECODE(MUP.LKVD,"Л","Есть","Нет") FROM MUP "


 
sniknik ©   (2004-11-11 13:52) [1]

iif судя по всему, по догадкам (если б знать что этот DECODE делает...)


 
Kerk ©   (2004-11-12 11:08) [2]

DECODE штука помощнее, но судя по TFM IIF меня здесь устроит.


 
Kerk ©   (2004-11-12 11:32) [3]

Блин, нифига не работает. Приведи пример плиз :)


 
sniknik ©   (2004-11-12 12:03) [4]

чего? забыл, я не знаю что ты своим декодом делаеш.


 
Kerk ©   (2004-11-12 12:18) [5]

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:39) [6]

по моему ктото когото не понимает.. :(
думаеш мне твое желание выраженное в неправильной команде аксесовского sql понятнее стало? или считаеш выделение жирным проясняет?
тогда тебе это поможет понять
я не знаю что ты своим декодом делаеш.

если по ошибке судить
> Too few parameters
возможно ему хочется AS LIKV после выражения (но скорее всего изза неправильности он его проигнорировал и не считает параметром для подстановки)


 
Kerk ©   (2004-11-12 12:43) [7]


> sniknik ©   (12.11.04 12:39) [6]

:))
Мне нужно, чтоб если MUP.LKVID=TRUE в MP.LIKV написалось "Ликвидировано" иначе пустую строку.


 
sniknik ©   (2004-11-12 12:46) [8]

MUP.LKVID тип boolean? тогда правильно. если только в том в чем ты пишеш задвоение кавычек в строке означает то же что и в дельфях.
попробуй AS LIKV добавить.


 
Kerk ©   (2004-11-12 12:51) [9]


> sniknik ©   (12.11.04 12:46) [8]

Пишу на VBA ... AS LIKV не помогает. :(


 
sniknik ©   (2004-11-12 13:01) [10]

> 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 13:36) [11]

sniknik благодарю за помощь. вопрос решен. сам не знаю как. просто взяло и заработало. :)



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
3-1100508020
Stanislav
2004-11-15 11:40
2004.12.12
Где взять TDBTREEVIEW ?


14-1101285539
msguns
2004-11-24 11:38
2004.12.12
Одиночесво ?


4-1098876608
VZup
2004-10-27 15:30
2004.12.12
OpenDialog - кто сталкивался???


14-1101020589
Sour
2004-11-21 10:03
2004.12.12
SMTP и POP3 серверы


14-1100879277
icebeerg
2004-11-19 18:47
2004.12.12
Поределение точки пересечения прямых