首页 > 解决方案 > 光标获取每个人拥有的汽车数量

问题描述

我是 Oracle 和 DBMS 的新手,我有两个表 CAR_OWNER 和 CAR。我试图通过使用光标和循环来获取每个人拥有的汽车数量,但我应该通过加入来完成吗?或者有一个特定的功能可以做到这一点?下面是我的代码:

declare 
    v_PNR CAR_OWNER.PNR%TYPE;
    i  NUMBER;

    cursor c_custcell is
        select First_name, Last_Name, PNR from CAR_OWNER;
begin
    i:=1;

    if not (c_custcell%isopen) then
        open c_custcell;
    end if;

    loop
        i := i +1;
        exit when i = 11; 

        fetch c_custcell into v_First_name, v_Last_name, v_PNR;
        exit when c_custcell%notfound;

        dbms_output.put_line(''||initcap (v_First_name)||',  '||initcap (v_Last_name)||',   '||v_PNR||',   '||i||','); 

    end loop;
end;
/

标签: oracleplsql

解决方案


按所有者分组会更容易,并且count

SELECT   INITCAP(first_name), INITCAP(last_name), COUNT(*)
FROM     car_owners
GROUP BY first_name, last_name

推荐阅读