我声明了一个游标来迭代我的员工ID。
DECLARE
r_employee employee.id%type;
c_employee CURSOR FOR
SELECT
distinct employee_id
FROM
employee;
然后我用这个光标在另一个表"中选择字段;分支";其中employee_;分支";表与光标匹配。
SELECT
COUNT(*),
employee_id
FROM
branch
WHERE
branch.employee_id = r_employee
GROUP BY
employee_id
出现以下错误:
错误:列"r_员工"不存在。
上面的代码在一个循环中,该循环在每个循环中从c_employee获取r_employees。知道怎么解决这个问题吗?(使用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;