Postgresql &引用;错误:查询没有结果数据的目标;返回集合时

Postgresql &引用;错误:查询没有结果数据的目标;返回集合时,postgresql,Postgresql,我对此函数有问题: 我得到的错误是错误:查询没有结果数据的目标 我做错了什么 CREATE OR REPLACE FUNCTION list_top_Patients_Visit() RETURNS SETOF PatientsList AS $$ DECLARE _Pat_Number visit.Pat_Number%type; _Patient_Name patient.NAme%type; _Doc_Number doctor.Doc_Number%type; _Doc_Name d

我对此函数有问题:

我得到的错误是错误:查询没有结果数据的目标

我做错了什么

CREATE OR REPLACE FUNCTION list_top_Patients_Visit()
RETURNS SETOF PatientsList AS $$

DECLARE
_Pat_Number visit.Pat_Number%type;
_Patient_Name patient.NAme%type; 
_Doc_Number doctor.Doc_Number%type;
_Doc_Name doctor.Name%type;
_Specialty doctor.Specialty%type;
_Total_visit INTEGER;
_Total_price visit.Price%type;
_Max_price visit.Price%type;

BEGIN

FOR _Pat_Number, _Total_visit IN (

SELECT v.pat_number  _Pat_Number, count((v.pat_number))  _Total_visit

FROM visit v, patient p
    GROUP BY v.pat_number, p.Name
    ORDER BY _Total_visit DESC, v.pat_number
    LIMIT 5) 
    LOOP
        SELECT count((visit.pat_number))  _Total_visit, patient.Name  _Patient_Name, visit.doc_number  _Doc_Number, count((visit.doc_number))  max_metge, sum(visit.price)  _Total_price, max(visit.price)  _Max_price,  doctor.name  _Doc_Name, doctor.specialty  _Specialty
        FROM visit, doctor, patient
        WHERE visit.pat_number=_Pat_Number and visit.doc_number=doctor.doc_number and patient.pat_number=_Pat_Number
        GROUP BY visit.doc_number, doctor.name, specialty, patient.Name
        ORDER BY max_metge DESC, visit.doc_number
        LIMIT 1;
        RETURN NEXT  _Patient_Name, _Doc_Name, _Specialty, _Total_visit, _Total_price, _Max_price;
    END LOOP;

END;
$$LANGUAGE plpgsql;

您必须使用
选择。。。进入…
以从查询中设置PL/PgSQL中的变量

选择
而不将
插入
是不允许的。如果要放弃结果,请改用
PERFORM
。如果希望将结果存储在变量中,请使用
SELECT。。。进入…
。有关详细信息,请参阅手册


在这种情况下,您可以使用
RETURN NEXT QUERY SELECT…
代替单独的
SELECT
RETURN
步骤。

您必须使用
SELECT。。。进入…
以从查询中设置PL/PgSQL中的变量

选择
而不将
插入
是不允许的。如果要放弃结果,请改用
PERFORM
。如果希望将结果存储在变量中,请使用
SELECT。。。进入…
。有关详细信息,请参阅手册

在这种情况下,您可以使用
returnnextqueryselect…
而不是单独的
SELECT
RETURN
步骤