Главная страница
    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
1-1094032448
Anderson
2004-09-01 13:54
2004.09.19
Уменьшение/увеличение прозрачности отдельных цветов формы


1-1094057892
com
2004-09-01 20:58
2004.09.19
Совместимость


6-1089870837
banderas
2004-07-15 09:53
2004.09.19
Как определить запущен ли idTCPServer на нескольких компах


1-1094559948
Iconka
2004-09-07 16:25
2004.09.19
MDI приложение


1-1094460264
vigo
2004-09-06 12:44
2004.09.19
ShowMessage





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