【发布时间】:2013-07-17 11:23:10
【问题描述】:
我正在尝试提取与特定日期相对应的记录计数,以及在数据库中没有对应用户 ID 的用户 ID。这是我试图完成它的方式(使用 plpgsql 但不定义函数:
DO
$BODY$
DECLARE
a date[]:= array(select distinct start_of_period from monthly_rankings where balance_type=2);
res int[] = '{}';
BEGIN
FOR i IN array_lower(a,1) .. array_upper(a,1)-1
LOOP
res:=array_append(res,'SELECT COUNT(user_id) from (select user_id from monthly_rankings where start_of_period=a[i] except select user_id from monthly_rankings where start_of_period=a[i+1]) as b');
i:=i+1;
END LOOP;
RETURN res;
$BODY$ language plpgsql
我得到一个错误:无法检索结果:错误:RETURN 在返回 void 的函数中不能有参数 第 11 行:返回资源; 我是这种程序语言的新手,无法发现函数返回 void 的原因。我确实将值分配给变量,并且我声明了空数组,而不是 NULL 数组。是否存在语法或更重要的推理错误?
【问题讨论】:
标签: sql for-loop syntax plpgsql postgresql-9.2