我创建了一个名为PV
的函数,它以最低的成本向我显示v_id
。现在我想调用该函数并希望SQL显示
p_name, p_description, QH associated
使用此v_id
。我的问题是我该怎么做?
我的表格和我的功能代码如下:
代码:
CREATE FUNCTION PV (@ptid AS INT)
RETURNS INT
AS
BEGIN
DECLARE @vid AS INT
DECLARE @min AS INT
SELECT
ptid = VP.P_ID, @vid = VP.V_ID,
@min = MIN(VP.COST)
FROM
VPr
GROUP BY
VP.P_ID, VP.V_ID
HAVING
MIN(VP.COST) < 25
RETURN @vid
END;
GO
注意:如果我执行此函数,并且我的输入ptid为9,它将返回正确的v_id
。重申:我想将该函数与p_name,p_description和qh
我是SQL函数的新手。请给我一个解释。
提前致谢!
答案 0 :(得分:1)
这是否符合您的要求:
SELECT
p_name
, p_description
, qh
, v_id
FROM
(
SELECT
P.p_name
, P.p_description
, P.qh
, vp.v_id
, ROW_NUMBER() OVER (ORDER BY vp.cost) R
FROM
P
JOIN vp ON P.p_id = vp.p_id
WHERE vp.v_id = dbo.PV(9) -- you may need to alter the schema from 'dbo'
) Q
WHERE R = 1