我声明了一个游标来迭代我的员工 ID。
DECLARE
r_employee employee.id%type;
c_employee CURSOR FOR
SELECT
distinct employee_id
FROM
employee;
然后我使用这个游标来选择另一个表“分支”中的字段,其中“分支”表中的employee_id 与游标匹配。
SELECT
COUNT(*),
employee_id
FROM
branch
WHERE
branch.employee_id = r_employee
GROUP BY
employee_id
出现以下错误:
错误:“r_employee”列不存在。
上面的代码在一个循环中,在每个循环中从 c_employee 获取 r_employee。任何线索如何解决这个问题?(使用 postgresql)
你不能。您必须引用游标内的列而不是游标本身。无论查询返回单列还是多列,游标都包含查询的结果。在这种情况下,您对 r_employee 的声明本质上是一个包含单个变量的记录。但是单列或多列必须引用游标内的列名,或者您将游标提取到的记录。所以
SELECT
COUNT(*),
employee_id
FROM
branch
WHERE
branch.employee_id = r_employee.id --<< reference the variable within the record >>
GROUP BY
employee_id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句