I have 2 query execute in pgAdmin 4.
select * from v_anken where gyomu_name like '%ひとり%' and nyuryoku_cd like '0187'
=> when select with gyomu_name and nyuryoku_cd . return 1 row
with tempt as (select * from v_anken )
select * from tempt where gyomu_name like '%ひとり%' and nyuryoku_cd like '0187'
=> return 10 row
View:
CREATE OR REPLACE VIEW public.v_anken AS
SELECT a.anken_seq,
a.kokyaku_cd,
b.kokyaku_name,
b.kokyaku_ryaku,
a.gyomu_seq,
c.gyomu_cd,
c.gyomu_name,
fnc_getname('ANKEN_KBN'::character varying, c.anken_kbn::integer)::text AS anken_kbn,
fnc_getname('SEISAN_KBN'::character varying, c.seisan_kbn::integer)::text AS seisan_kbn,
a.kotei_seq,
d.kotei_kbn,
a.shozoku_seq,
a.pkg_yosan,
COALESCE(g.jyuchu_yosan, a.pkg_yosan, NULL::numeric) AS yosan_kei,
a.kaihatsu_kikan_from,
a.kaihatsu_kikan_to,
a.pkg_shokyaku_genka,
a.pkg_shokyaku_yosan,
a.nyuryoku_cd,
concat_ws(' '::text, e.lastname, e.firstname) AS nyuryoku_name,
a.nyuryoku_ymd AS nyuryoku_date,
a.shonin_comment,
a.shonin_cd,
concat_ws(' '::text, f.lastname, f.firstname) AS shonin_name,
a.shonin_ymd,
CASE
WHEN a.shonin_ymd IS NOT NULL THEN '済'::text
ELSE ''::text
END AS shonin_kbn,
a.sagyo_kanryo_kbn,
a.sagyo_kanryo_ym,
a.biko,
a.horyu_kbn,
a.refix_time,
a.inputtable_date,
a.working_complete_report_checked_date,
a.end_date
FROM t_anken a
JOIN v_kokyaku b ON a.kokyaku_cd = b.kokyaku_cd
JOIN t_gyomu c ON a.gyomu_seq = c.gyomu_seq
JOIN t_kotei d ON a.kotei_seq = d.kotei_seq
JOIN employee e ON a.nyuryoku_cd::text = e.code::text
LEFT JOIN employee f ON a.shonin_cd::text = f.code::text
LEFT JOIN ( SELECT t_anken_jyuchu.anken_seq,
sum(t_anken_jyuchu.gp_yosan) AS jyuchu_yosan
FROM t_anken_jyuchu
GROUP BY t_anken_jyuchu.anken_seq) g ON a.anken_seq = g.anken_seq;
ALTER TABLE public.v_anken
OWNER TO postgres;
Function:
CREATE OR REPLACE FUNCTION public.fnc_getname(
namekbn character varying,
code integer)
RETURNS character varying
LANGUAGE 'plpgsql'
COST 100
VOLATILE
AS $BODY$
BEGIN
RETURN (SELECT name
FROM t_name
WHERE name_kbn = namekbn
AND cd = code
);
END;
$BODY$;
ALTER FUNCTION public.fnc_getname(character varying, integer)
OWNER TO postgres;
when select from .. where .. and. sometimes return only 1 row, although returns more than 1. What could be the problem? I have no idea even where to search. Need help. Thanks.