Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Вниз

Запрос в MSSQL   Найти похожие ветки 

 
DA   (2004-08-23 17:59) [0]

sql_string:="select ltb_sessions.sid,ltb_loadparams.name,"+
   "if((ltb_loadparams.RowsCnt>ltb_loadparams.WORKACTS) or "+
   "(ltb_loadparams.RowsLinkCnt>ltb_loadparams.WORKLINKS),"+
   """Не завершена"",""Завершена"") as LoadState, ltb_sessions.starttime, "+
   "ltb_sessions.fintime, ltb_users.displayname,ltb_sessions.userid "+
   " from ltb_sessions, ltb_loadparams,ltb_users "+
   " where ltb_sessions.sid=ltb_loadparams.sid and ltb_sessions.userid=ltb_users.userid and ltb_sessions.stype=1 ORDER BY Sid DESC";


В MySql такой запрос отрабатывает нормально, в MSSQL валится, подскажите, где ошибка


 
MOA ©   (2004-08-23 18:20) [1]

В MS SQL нет функции if.
Необходимо либо переформулировать запрос (на первый взгляд - это можно сделать), либо используйте CASE
Удачи!


 
Ega23 ©   (2004-08-23 18:29) [2]


select S.sid, P.name,
LoadState= CASE
  when ((P.RowsCnt>P.WORKACTS) or (P.RowsLinkCnt>P.WORKLINKS))
  then "Не завершена" else  "Завершена" end,
S.starttime, S.fintime, U.displayname, S.userid
from ltb_sessions S, ltb_loadparams P, ltb_users U
where S.sid=P.sid and S.userid=U.userid and S.stype=1
ORDER BY Sid DESC


Вроде так


 
Skyle ©   (2004-08-24 06:31) [3]


> LoadState= CASE ... END

Подозреваю, что правильнее будет сделать несколько наоборот.
CASE...END AS LoadState.
Так больше похоже на то, чего автор вопроса хотел.


 
Ega23 ©   (2004-08-24 09:26) [4]

Подозреваю, что правильнее будет сделать несколько наоборот.
CASE...END AS LoadState.
Так больше похоже на то, чего автор вопроса хотел.


Это по ANSI SQL правилам. А диалект T-SQL разрешает конструкцию LoadState=CASE... Автор же на T-SQL пишет...


 
Skyle ©   (2004-08-24 09:38) [5]


> [4] Ega23 ©   (24.08.04 09:26)

Согласен ;-)


 
сергей1   (2004-08-24 09:39) [6]

в T-SQL есть оператор if-then


 
Ega23 ©   (2004-08-24 09:50) [7]

2 сергей1   (24.08.04 09:39) [6]

Но не в конструкции Select:

IF Boolean_expression
   { sql_statement | statement_block }
[ ELSE
   { sql_statement | statement_block } ]



 
сергей1   (2004-08-24 10:08) [8]

согласен, просто МОА так написал ...


 
DA   (2004-08-24 17:54) [9]

Спасибо!
Помогите еще с одним запросом, если нетрудно.Заранее благодарен.

UPDATE ltb_docs SET VALUE=:VALUE,TEXTSIZE="+IntToStr(len_text)+" WHERE CODE="+IntToStr(id_code)

Ошибка где-то около TEXTSIZE :)


 
Ega23 ©   (2004-08-24 18:16) [10]

На первый взгляд, вот это:   :VALUE
Параметр поставил?



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

Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
4-1091950474
DFF
2004-08-08 11:34
2004.09.19
Работа с boot-сектором диска


4-1091891488
Seldon
2004-08-07 19:11
2004.09.19
Как определить какой шрифт...


14-1093848507
вразлет
2004-08-30 10:48
2004.09.19
Ко здоровью нации через рекламу пива


14-1093525319
VMcL
2004-08-26 17:01
2004.09.19
Документирование кода (щас меня будут бить ногами :-)


3-1093380738
ceval
2004-08-25 00:52
2004.09.19
Подскажите как заменить ADOTable на ADOQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский