PL/SQL(Brewbean数据库)中的循环

PL/SQL(Brewbean数据库)中的循环,sql,oracle,plsql,oracle10g,plsqldeveloper,Sql,Oracle,Plsql,Oracle10g,Plsqldeveloper,在Oracle10g中使用Brewbean数据库首次发布简单循环语句并遇到一些问题。我不知道我在这方面做错了什么,我已经多次尝试将select语句更改为第二个表bb_shopper的主键,oracle仍然返回相同的错误。我不明白这一点 问题在于:创建一个循环,根据物品的价格和可花费的总金额确定可购买物品的数量,使用一个初始化变量表示价格金额,另一个表示可花费的总金额 我的答覆是: SQL> /* 2-6 Loop */ SQL> SQL> declare 2

在Oracle10g中使用Brewbean数据库首次发布简单循环语句并遇到一些问题。我不知道我在这方面做错了什么,我已经多次尝试将select语句更改为第二个表bb_shopper的主键,oracle仍然返回相同的错误。我不明白这一点

问题在于:创建一个循环,根据物品的价格和可花费的总金额确定可购买物品的数量,使用一个初始化变量表示价格金额,另一个表示可花费的总金额

我的答覆是:

SQL> /* 2-6 Loop */
SQL> 
SQL> declare
  2          v_idshopper bb_basket.idshopper%type;
  3          v_price bb_product.price%type;
  4          v_stock bb_product.stock%type;
  5          v_firstname   bb_shopper.firstname%type;
  6          v_lastname    bb_shopper.lastname%type;
  7          v_idproduct bb_product.idproduct%type;
  8  begin
  9          select  price, stock, firstname, lastname
 10          into v_price, v_stock, v_firstname, v_lastname
 11          from bb_product join bb_shopper using (idproduct)
 12          where v_idproduct like idproduct
 13          group by firstname, lastname;
 14  
 15          for i in 21..27 LOOP
 16              dbms_output.put_line('Customer is ' ||v_idshopper ||' ' ||v_firstname ||' ' ||v_lastname);
 17              dbms_output.put_line('The total number of items that can be purchased is '||v_stock);
 18              dbms_output.put_line('The total amount that would be spend is '||v_price);
 19          end loop;
 20  end;
 21  /
    from bb_product join bb_shopper using (idproduct)
                                           *
ERROR at line 11:
ORA-06550: line 11, column 41: 
PLS-00302: component 'IDPRODUCT' must be declared 
ORA-06550: line 11, column 41: 
PL/SQL: ORA-00904: "BB_SHOPPER"."IDPRODUCT": invalid identifier 
ORA-06550: line 9, column 2: 
PL/SQL: SQL Statement ignored 
不太确定我是否应该发布从中提取数据的表?让我知道,如果我应该,我会很高兴地张贴他们

编辑:上述问题中使用的表格

TABLE bb_shopper (
    idShopper number(4),
    FirstName varchar2(15),
    LastName varchar2(20),
    Address varchar2(40),
    City varchar2(20),
    State char(2),
    ZipCode varchar2(15),
    Phone varchar2(10),
    Fax varchar2(10),
    Email varchar2(25),
    UserName varchar2(8),
    Password varchar2(8),
    Cookie number(4) DEFAULT 0,
    dtEntered date DEFAULT SYSDATE,
    Promo char(1),
        CONSTRAINT shopper_id_pk PRIMARY KEY(idShopper)
    );

TABLE bb_product (
    idProduct number(2) ,
    ProductName varchar2(25) ,
    Description varchar2(100) ,
    ProductImage varchar2(25),
    Price number(6,2),
    Active number(1),
    Type char(1),
    stock number(5,1),
    ordered number(3),
    reorder number(3),
    idDepartment number(2),
        CONSTRAINT prod_id_pk PRIMARY KEY(idProduct)
    );

欢迎来到SO!错误消息非常清楚-您的表IDSHOPPER不包含IDPRODUCT列。请为问题中涉及的所有表添加DDL语句,而不是作为注释,而是通过编辑问题来添加。此外,您的循环没有多大意义-您正在连续七次打印相同的值。硬编码的21/27从何而来?您使用的是关键字this,这意味着在您加入bb_产品和bb_购物者的两个表中,必须有相同名称的idproduct列。请检查是否是这种情况,如果不是这样,那么使用ON-condition语法连接不同名称的列。我使用的21-27来自idshopper列,只有id的21-27,这会使两个表上没有相应的idproduct或idshopper列更有意义。谢谢伊万兹格!