SQL - Как ВЫБРАТЬ дополнительные параметры в запросе SQL с помощью оператора DECLARE
Я использую вывод этого SQL в Crystal Reports. Я создал хранимую процедуру, так как у меня есть DECLARE
утверждение в запросе.
Мне необходимо - SELECT PP.PLPLANID
- как параметр, как у меня DECLARE
в моем запросе это, кажется, мешает мне выбрать дополнительные параметры. Что мне нужно сделать?
Это то, что у меня пока есть - это создание одной строки и столбца, сколько мне нужно, но теперь мне нужно добавить дополнительные столбцы, такие как PP.PLPLANID
и т.п.
AS
BEGIN
DECLARE @MultiZoneOverlays VARCHAR (2000)
SET NOCOUNT ON
SELECT @MultiZoneOverlays = COALESCE(@MultiZoneOverlays +', ', '') + Z.NAME
FROM PLPLAN PP
JOIN PLPLANPARCEL PLP ON PP.PLPLANID = PLP.PLPLANID
JOIN PARCEL P ON PLP.PARCELID = P.PARCELID
JOIN PLPLANZONE PLZ ON PP.PLPLANID = PLZ.PLPLANID
JOIN ZONE Z ON PLZ.ZONEID = Z.ZONEID
WHERE "PP"."PLPLANID" = @PLPLANID
AND PLP.Main = '1'
AND PLZ.MAIN = '0'
SELECT @MultiZoneOverlays AS MultiZoneOverlaysList
END
0 ответов
Не говоря уже о том, что это лучший способ, но ради обучения, чтобы добавить больше переменных в соответствии с моделью в вашей текущей процедуре, вы можете сделать это:
AS
BEGIN
DECLARE @MultiZoneOverlays VARCHAR (2000)
, @Variable2 varchar(2000)
, @Variable3 varchar(2000)
SET NOCOUNT ON
SELECT @MultiZoneOverlays = COALESCE(@MultiZoneOverlays +', ', '') + Z.NAME
, @Variable2 = Column2
, @Variable3 = Column3
FROM PLPLAN PP
JOIN PLPLANPARCEL PLP ON PP.PLPLANID = PLP.PLPLANID
JOIN PARCEL P ON PLP.PARCELID = P.PARCELID
JOIN PLPLANZONE PLZ ON PP.PLPLANID = PLZ.PLPLANID
JOIN ZONE Z ON PLZ.ZONEID = Z.ZONEID
WHERE "PP"."PLPLANID" = @PLPLANID
AND PLP.Main = '1'
AND PLZ.MAIN = '0'
SELECT @MultiZoneOverlays AS MultiZoneOverlaysList
, @Variable2 AS Var2
, @Variable3 AS Var3
END