简体   繁体   English

如何在SQL Server 2014中的新函数中调用函数

[英]How to call a function within a new function in SQL Server 2014

I have created a function called PV which shows me v_id with lowest cost. 我创建了一个名为PV的函数,该函数以最低的成本向我显示v_id Now I would like to call that function and would like SQL to display 现在我想调用该函数,并希望显示SQL

p_name, p_description, QH associated 

with this v_id . 与此v_id My question is how do I do that? 我的问题是我该怎么做?

My tables are below along with my function code: 我的表格和功能代码如下:

  • Tb1: P (p_id (pk), p_name char (60), p_description varchar(300), qh (int) Tb1:P(p_id(pk),p_name char(60),p_description varchar(300),qh(int)
  • Tb2: vp (vp_id (pk), cost, p_id (fk), v_id (fk)) Tb2:vp(vp_id(pk),成本,p_id(fk),v_id(fk))
  • TB3: V (v_id (pk), v_name) TB3:V(v_id(pk),v_name)

Code: 码:

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

Note : if I execute this function, along with my input for ptid as 9, it will return the correct v_id . 注意 :如果我执行此功能,以及将ptid输入为9,它将返回正确的v_id To reiterate: I would like to call that function along with p_name, p_description, and qh 重申一下:我想将该函数与p_name,p_description和qh一起调用

I am new to SQL functions. 我是SQL函数的新手。 Kindly provide me an explanation. 请给我一个解释。

Thanks in advance! 提前致谢!

Does this do what you're looking for: 这是否满足您的需求:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM