Главная страница
    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.035 c
14-1093940607
DSKalugin
2004-08-31 12:23
2004.09.19
Что за расширение "*.nco"?


14-1094077026
gn
2004-09-02 02:17
2004.09.19
Я даже не знаю как понимать таких людей


1-1093956323
Uran
2004-08-31 16:45
2004.09.19
Подскажите какие лучше использовать компоненты


4-1092031442
Frozzen
2004-08-09 10:04
2004.09.19
WriteFile ???


1-1094202416
Ира
2004-09-03 13:06
2004.09.19
20-ти знаковое целое положительное число ???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский