2016-09-27 4 views
0

제가SQL Server에서 매개 변수화 된 뷰를 만드는 방법은 무엇입니까?

아래
create view penord1_view 
as 
    select 
     ser, docno, pcode, barcode, pname, unid, unit, qty, rate 
    from 
     sale 
    where  
     tc = 'O01' and docdt > @xdate1 and docdt < @xdate2 

    union 

    select 
     sser as ser, sdocno as docno, pcode, barcode, pname, unid, unit, qty, rate 
    from  
     sale 
    where 
     tc = 'P01' and docdt > @xdate1 and docdt < @xdate2 

같은 두 개의 뷰가 있고 두 번째 문제는 I가 제보기 @xdate1 파라미터를 전달할 수 없다는

create view penord_view 
as 
    select 
     ser, docno, pcode, barcode, pname, unid, unit, rate, 
     SUM(qty) AS qty 
    from 
     penord1_view 
    group by 
     ser, docno, pcode, barcode, pname, unid, unit, rate 

이다.

뷰 또는

+0

왜 매개 변수를 전달합니까? 첫 번째 뷰에서'docdt' 필드를 반환하고 두 번째 뷰에'WHERE' 문을 추가 할 수 있습니다. –

+0

docdt를 사용하여 합계를 계산할 수 없기 때문에 첫 번째 뷰에서 docdt를 반환 할 수 없습니다. –

+0

뷰에서 함수를 사용할 수 없습니다. 뷰에서 스케일러 함수를 사용합니까? –

답변

1

뷰가 정의에 의해 매개 변수가없는 SQL Server의 다른 방법으로이 작업을 수행하는 방법을 제안 해주십시오. 저장된 쿼리로 볼 수 있습니다. 매개 변수를 사용하려면 저장 프로 시저를 사용해야합니다.

+0

함수에 저장하지 마라 * 저장 프로 시저가 아니다. 저장 프로 시저가 –

+0

일 때 매개 변수로 사용할 수있는 테이블 값 함수를 사용할 수없는 동안 함수에서 *를 사용할 수 있습니다. –

관련 문제