2011-03-08 6 views
0

내 SQL Server 테이블 그 열이 포함SQL 쿼리를 작성하는 방법은 무엇입니까?

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 

내가 웹 양식에 두 개의 텍스트 상자가 있습니다. SQL 쿼리를 작성하는 방법을 다른

500

사용자가 TextBox1에에서 9 월 2011 s1from 날짜와 s1to 날짜 사이의 날짜를 입력

13 월 - 2011 년 텍스트 상자 2 다음 textbox3의 운임이 될 것입니다 (400) 이거? 날짜와 @fare @ 여기

+0

우리는 이것을 달성 할 수있는 많은 방법을 제안 할 수 있지만, 테이블 구조가보기에 좋지 않습니다. 그것을 나눠서 더 좋게 만드십시오. – Pradeep

+0

당신이 일하면 대답을 받아들입니다. –

+0

두 가지 질문 : '2011-03-01'과 같은 날짜를 입력하면 어떻게됩니까? '2011-03-15'와 같은 날짜를 입력하면 어떻게됩니까? 즉, '운임'열과 '운임'열의 가치를 어떻게 사용하는지 알 수 있습니까? 사용자가 제품을 선택해야합니까? – Thomas

답변

0

사용자 변수 또는 입력

Select * from table 
where (@date between s1from and s1to) 
and fare  = @fare 
0

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 
1

프리젠 테이션 계층에서 쿼리를 가정 해보십시오 매개 변수가있는 쿼리입니다 정의 (당신은 것을 확인했다고 텍스트 상자 값은 실제 날짜 임), 쿼리는 (사용자가 제품을 선택해야한다고 가정합니다.)

Select Case 
     When @UserDateValue Between s1from And s1to Then s1fare 
     Else fare 
     End As fare 
From MyTable 
Where Product = @Product 
관련 문제