Hello group, I've got a new problem where I hope someone can give me a solution.
I have witten a function which should give back a type created by me. To get the data into the type, I have to go through a loop, which holds other loops. Simplified (not really), it looks like this: CREATE OR REPLACE FUNCTION getregistrationtagging() RETURNS SETOF ty_usertrackung AS $BODY$ DECLARE objReturn ty_usertrackung%rowtype; DECLARE objDate ty_trackdate%rowtype; DECLARE objTag ty_tagtype%rowtype; DECLARE objDesignid ty_designidtype%rowtype; BEGIN for objDate IN SELECT date_part('day',trackdate) as iDay, date_part('month',trackdate) as iMonth, date_part('year',trackdate) as iYear FROM tbl_usertracking_registration GROUP BY date_part('day',trackdate), date_part('month',trackdate), date_part('year',trackdate) loop for obTag IN SELECT tag as ty_tag FROM tbl_usertracking_registration WHERE date_part('day',trackdate)=objDate.iDay AND date_part('month',trackdate)=objDate.iMonth AND date_part('year',trackdate)=objDate.iYear GROUP BY tag loop for objDesignid IN SELECT designid as ty_designid FROM tbl_usertracking_registration WHERE date_part('day',trackdate)=objDate.iDay AND date_part('month',trackdate)=objDate.iMonth AND date_part('year',trackdate)=objDate.iYear AND tag=objTag.ty_tag GROUP BY designid loop objReturn.ty_designid := objDesignid.ty_designid; objReturn.ty_tag := objTag.ty_tag; SELECT INTO objReturn.ty_count count(*) FROM FROM tbl_usertracking_registration WHERE date_part('day',trackdate)=objDate.iDay AND date_part('month',trackdate)=objDate.iMonth AND date_part('year',trackdate)=objDate.iYear AND tag=objTag.ty_tag AND designid=objDesignid.ty_designid; return objReturn; END LOOP; END LOOP; END LOOP; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION getregistrationtagging() OWNER TO postgres; Well, there are probably other ways (probably more grouping) to select the data I need. My brain came up with this solution, but it doesn't work and postgres gives back »loop variable of loop over rows must be record or row variable« as the error message. I don't know what it wants to tell me so any input is welcime. Thanks in advance Mo