2014-04-16 2 views
0

Я пытаюсь отобразить количество заказов для каждого клиента как dbms_output.put_line, но счет неверен ... что я делаю неправильно?найти количество заказов на одного клиента

declare 
    t_order  number; 
    cust_id  customer.c_id%type; 
    orders_cid orders.c_id%type; 
    cust_first customer.c_first%type; 
    cust_last customer.c_last%type; 

    cursor c is 
    select distinct(customer.c_id), 
      customer.c_first, 
      customer.c_last, 
      orders.c_id 
     from customer 
     join orders 
     on customer.c_id = orders.c_id; 
begin 
    dbms_output.put_line('AZ SPORTS OUTSTANDING ORDERS'); 
    dbms_output.put_line('FIRST LAST TOTAL'); 
    dbms_output.put_line('NAME NAME ORDERS'); 

    OPEN C; 
    LOOP 
    FETCH C INTO CUST_ID, CUST_FIRST, CUST_LAST, ORDERS_CID; 
    EXIT WHEN C%NOTFOUND; 

    IF CUST_ID=ORDERS_CID THEN 
     select count(distinct(orders.c_id)) 
     into t_order 
     from orders 
     join customer 
      on orders.c_id = customer.c_id 

     DBMS_OUTPUT.PUT_LINE(TO_CHAR(CUST_FIRST) || ' ' || 
          TO_CHAR(CUST_LAST) || ' ' || 
          TO_CHAR(T_ORDER)); 
    END IF; 
    END LOOP; 

    CLOSE C; 
END; 
/

Количество заказов на одного клиента отображающих 5 весь путь вниз для каждого клиента, который разве правильный ответ.

ответ

0

Мне кажется, что вам нужно предложение WHERE в заявлении SELECT COUNT... - возможно, что-то вроде WHERE ORDERS.C_ID = ORDERS_CID AND CUSTOMER.C_ID = CUST_ID. Попробуйте это и посмотрите, как это работает.

Делитесь и наслаждайтесь.

+0

niceee спасибо, что это работает: D так много! – Jongu

Смежные вопросы