如何使用SQL过程为过程生成报告

问题描述 投票:0回答:0

我在 Postgres SQL 上,我正在尝试编写一个过程,我可以从 tableA 中获取

name
,然后遍历该
name
值并在另一个连接查询中使用它来获取结果。 此过程的目的是生成某种报告以查看或生成表格行并稍后将它们导出为某种 csv 格式。

这就是我的程序。

CREATE OR REPLACE PROCEDURE process_report() AS $$
DECLARE
    name_row RECORD;
BEGIN
    -- Select names from table
    FOR name_row IN select name from TableA LOOP
        SELECT tc.time,tc.index,ta.name,tb.value FROM TableB as tb
        inner join TableC as tc on kpii.id = kpir.index_id
        inner join TableA as ta on kpic.id = kpir.kpi_id
        where ta.name = 'name_row.name';
    END LOOP;
END;

当我使用 CALL process_report() 运行它时,我得到的错误消息是

ERROR:  query has no destination for result data
HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT:  PL/pgSQL function process_results() line 9 at SQL statement
SQL state: 42601

我应该如何更改我的程序,以获取表格行并从中生成报告。

postgresql procedure
© www.soinside.com 2019 - 2024. All rights reserved.