2012-04-16 2 views
2
declare @Date DateTime 
set @Date='2012-04-16' 
select s.sid,'Status'=case a.sid when isnull(a.sid,null) 
then 'absent' else 'present' end from 
student s left outer join (select * from absent where [email protected]) as a 
on s.sid=a.sid 

나는이 같은 SQL 쿼리를 가지고 있고, 나는 그것이 가능하다 .....이 하나보기를 만들 필요가 ...나는 이것에 대한 기능을 만들어

매개 변수를 사용하여 SQL 뷰를 생성 같은

CREATE FUNCTION dbo.Attendance (@Date DateTime) 
RETURNS TABLE 
AS 
RETURN 
(
    select s.sid,'Status'=case a.sid when isnull(a.sid,null) 
    then 'absent' else 'present' end from 
    student s left outer join (select * from absent where [email protected]) as a 
    on s.sid=a.sid 

) 

뷰가 성공적으로 생성 ....하지만 난

select * from dbo.Attendance('2012-04-11') 

같은 뷰를 호출 할 때 변환이 때 변환 실패 "처럼 오류를보고한다 "이 함수를 어떻게 호출 할 수 있습니까?"

+3

을 정말 - 전망 ... 매개 변수가 없습니다 당신은 단지보기에 가입하고 뷰를 쿼리 할 때 어디에서 매개 변수를 사용 할 수 ... – Yahia

+0

예. 할게요 ... 대답을 주셔서 감사합니다. Yahia – shanish

+1

런타임에 매개 변수 값을 지정하고 저장 프로 시저를 만들려고합니다 – Naved

답변

2

MS Access에서는 paramerterised 뷰를 사용할 수 있지만 심각한 db 서버는 필요하지 않은 뷰를 구성 할 수 있습니다. 매개 변수.

예제는 요구 사항에 맞게 구현 된 저장 프로 시저를 설명합니다.

다른 테이블에 @date 매개 변수를 유지하는 것입니다 귀하의 요구 사항을 충족하는 또 다른 방법은,이 뷰가 참조 할 수와 기준이

+0

감사합니다. Paddy Carroll ... @Date를 유지하는 방법을 이해하지 못합니다. 다른 테이블, 나에게 쿼리 샘플을 줄 수 – shanish

+0

만들기 테이블 application_parameters (param_name varchar, param_value varchar); application_parameters (param_name, param_value) 값 ('my_app_date', '2012-04-16')에 삽입하십시오. –

+1

select s.sid, 'Status'= case a.sid isnull (a. 에서 학생의 왼쪽 외부 조인 (select * from absent, application_paramaters where param_name = 'my_app_date'및 date = cast (my_param_value as Date))의 'absent'else 'present' sid = a.sid ---- 체크하지 않았지만 아이디어를 얻었습니다. –

2

당신은 매개 변수화를 만들 수 없습니다를 충족되면 행을 반환합니다 거기에 제공 SQL 서버에서 atleast를보기보다는 오히려 테이블 함수를 사용하십시오.

자세한 내용은 Create parameterized VIEW in SQL Server 2008을 참조하십시오.

희망은 아이디어를 줄 것입니다.

+0

감사합니다. Shailesh, pls 내 업데이트 된 질문 확인 – shanish

+0

'2012-04-11'을 datetime 변수로 가져가보십시오. dbo.Attendance (@myDate)에서 select *를 사용하십시오. 나는이 수정 후에 그것이 작동해야한다고 희망한다. – Shailesh

+0

그것의 작동하지 않는다. – shanish

관련 문제