2013-02-19 5 views
1

У меня есть код ниже, который я хочу превратить в представление. Однако я не могу объявить varchar в представлении.declare varchar view issues

Может ли кто-нибудь посоветовать по этому пути?

Sql код -

DECLARE @PROJECTNUMBER VarChar 
SELECT  SUM(PAFeeAmount) FeeAmount 
FROM   PA02101 
WHERE  PAPROJNUMBER = @PROJECTNUMBER 

Спасибо,

+1

Вы не можете сделать это в целях, просто сделать это без 'WHERE' пункт затем процеживают на выбор с точки зрения:' SELECT * FROM VIEWNAME где ... '. –

+0

Зачем вам это нужно? – HLGEM

ответ

1

Попробуйте создать функцию inline table-valued. Пример:

CREATE FUNCTION dbo.fxSample(@PROJECTNUMBER VARCHAR(20)) 
RETURNS TABLE 
AS 
RETURN 
(
    SELECT SUM(PAFeeAmount) FeeAmount 
    FROM PA02101 
    WHERE PAPROJNUMBER = @PROJECTNUMBER 
) 

-- Then call like this, just as if it's a table/view just with a parameter 
SELECT * FROM dbo.fxSample('hello') 
1

Если вы пытаетесь передать параметр (s) до VIEW, вы не можете этого сделать. Просто сделайте свое представление, как показано ниже, с помощью группы By и фильтра во время выбора из представления.

CREATE VIEW myView 
AS 
    SELECT PAPROJNUMBER, SUM(PAFeeAmount) FeeAmount 
    FROM PA02101 
    GROUP BY PAPROJNUMBER 


--Select like below. (may be passing it to a stored procedure) 
declare @projectNumber varchar(50) --remember to give a length 

select * from myView 
where projectNumber = @projectNumber 
Смежные вопросы