Как написать SQL-запрос для этого? - PullRequest
0 голосов
/ 08 марта 2011

Моя таблица SQL Server содержит эти столбцы:

ID      Product      fare       s1from         s1to            s1fare
1       Pen          500        9-Mar-2011     14-Mar-2011     400
2       copy         800        15-Mar-2011    10-Mar-201      900
3       Pencil       900        20-Mar-2011    25-Mar-2011     1000

У меня есть два текстовых поля в веб-форме.

Когда пользователь вводит дату между s1from датой 9 марта 2011textbox1 и s1to дата 13-Mar-2011 в текстовом поле 2, тогда тариф в textbox3 будет 400, иначе 500

Как написать SQL-запрос для этого?

Ответы [ 3 ]

1 голос
/ 08 марта 2011

Предполагая, что запрос из уровня презентации является параметризованным (и вы убедились, что значения текстового поля действительно являются датами), ваш запрос будет выглядеть примерно так (я также предполагаю, что пользователь должен был выбрать продукт):

Select Case
        When @UserDateValue Between s1from And s1to Then s1fare
        Else fare
        End As fare
From MyTable
Where Product = @Product
0 голосов
/ 08 марта 2011

Попробуйте это

Declare @dateFrom as datetime
Declare @dateTo as datetime
set @dateFrom = '03/09/2011' -- this is the value from textbox 1
set @dateTo = '03/13/2011' -- this is the value from textbox 2

-- this query returns the fare based on the inputted values on dateFrom and dateTo
Select 
    TheFare=Case when @dateFrom >= Cast(Convert(varchar(20),s1from,101) as datetime) and
    @dateTo <= Cast(Convert(varchar(20),s1To,101) as datetime) then
    s1fare
    else fare
    end 
From YourTable
0 голосов
/ 08 марта 2011

здесь @ date и @fare - определяемая пользователем переменная или ввод

Select * from table 
where (@date between s1from   and s1to )
and fare       = @fare
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...