В чем проблема с этим запросом? - PullRequest
0 голосов
/ 08 марта 2011

Пожалуйста, повторите этот запрос, если есть какие-либо проблемы, которые:

SELECT [travel], [service], [travelid], [fro_m], [t_o], [dep], [arr], [booking_closed],
[discount], [faresleeper], [rating], [seats], [s_no], 
[fare] = 
CASE 
  WHEN @date >= Cast(Convert(varchar(20),s1from,101) as datetime
    AND @date >= Cast(Convert(varchar(20),s1to,101) as datetime 
  THEN s1rate 
  ELSE fare 
END 
FROM a1_volvo WHERE  ( fro_m = @fro_m ) AND ( t_o = @t_o ) 

Ответы [ 4 ]

3 голосов
/ 08 марта 2011
SELECT [travel], [service], [travelid], [fro_m], [t_o], [dep], [arr], [booking_closed],
[discount], [faresleeper], [rating], [seats], [s_no], 
[fare] = 
CASE 
  WHEN @date >= Cast(Convert(varchar(20),s1from,101) as datetime)
    AND @date >= Cast(Convert(varchar(20),s1to,101) as datetime )
  THEN s1rate 
  ELSE fare 
END 
FROM a1_volvo WHERE  ( fro_m = @fro_m ) AND ( t_o = @t_o ) 
1 голос
/ 08 марта 2011

Проверьте, что ваше приведение должно быть приведение (столбец как тип данных) , а также учитывайте больше, чем равно "> =" и меньше, чем "<=" </strong> il_guru сказал. :) Проверьте это ...

SELECT [travel], [service], [travelid], [fro_m], [t_o], [dep], [arr],
  [booking_closed], [discount], [faresleeper], [rating], [seats], [s_no],      
  [fare] = CASE WHEN @date >= Cast(Convert(varchar(20),s1from,101) as datetime)
       AND @date <= Cast(Convert(varchar(20),s1to,101) as datetime)
       THEN s1rate ELSE fare END  
FROM a1_volvo  

-- use this where clause if fro_m and t_o are not datetime
WHERE (fro_m = @fro_m ) AND ( t_o = @t_o )

-- else use this where clause if fro_m and t_o have datetime of datatypes
WHERE ( Cast(Convert(varchar(20),fro_m,101) as datetime) = @fro_m ) 
AND (  Cast(Convert(varchar(20),t_o,101) as datetime) = @t_o )
1 голос
/ 08 марта 2011

В операторе WHEN , должно ли оно быть

WHEN @date > = * Cast (Convert (varchar (20), s1from, 101) какdatetime

AND @date <= </strong> Cast (Convert (varchar (20), s1to, 101) как datetime

с одним большим равным иодин меньше равно если это проверка диапазона?

0 голосов
/ 08 марта 2011

Удалить [fare] = и попробуйте снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...