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

Вниз

Запрос в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.057 c
14-1093691737
ИМХО
2004-08-28 15:15
2004.09.19
А где ветка про футбол?


1-1094459125
denis24
2004-09-06 12:25
2004.09.19
сортировака в listbox


14-1093814793
SergP
2004-08-30 01:26
2004.09.19
Производительность камней.


14-1093348868
paul_k
2004-08-24 16:01
2004.09.19
Есть вакансии в Москве


1-1094490496
Klopan
2004-09-06 21:08
2004.09.19
Handle активного текущего окна