2017-04-20 35 views
0

試圖獲得特定zip的總銷售額;我做了一些這些,但似乎不能得到總數,我錯過了一些東西。pl/sql需要幫助未知數

表是銷售總額爲銷售額的郵編, 的客戶。

這個執行完成但沒有總數;所以我錯過了什麼?

也爲了問我怎麼可以修改這個問我在一個界面,我可以在哪裏輸入zip?我也是這樣開始的;再次,當我插入zip時,我得到這個問題,它給了我錯誤。

SET SERVEROUTPUT ON 

DECLARE 
    V_SALES NUMBER (10,2); 
    V_ZIP VARCHAR2(5) NOT NULL := 48228; 

BEGIN 
    SELECT SUM(S.GROSS_SALE_PRICE) -- GROUP FUNCTION 
    INTO V_SALES 
    FROM SALES S 
    WHERE CUST_ID = V_ZIP; 

    DBMS_OUTPUT.PUT_LINE ('TOTAL SALES FOR ZIP 48228, IS'|| TO_NUMBER(V_SALES)); 
END; 
/
+2

'WHERE CUST_ID = V_ZIP'?作爲查詢的一部分,你是否想要加入這兩個表?你沒有包含表結構,所以不能確定連接條件是什麼(雖然可以猜測......)也不知道你爲什麼在這裏使用PL/SQL,或者你爲什麼要混合數據類型,或將數字轉換爲數字.... –

+0

不,實際上拉鍊是客戶表的一部分,總銷售額是銷售表的一部分。所以,我必須將銷售表與客戶表結合起來,才能從指定的zip中獲得總銷售額。我需要使這個pl/sql匿名塊,所以這就是爲什麼我在開發人員使用PL/sql。我最初是使用光標,但試圖找到簡化它。 – Noir

+0

但是,您的代碼根本不包含客戶表。你似乎知道它應該。你有沒有嘗試加入兩張桌子?你爲什麼認爲你需要使它成爲一個匿名塊? –

回答

0

嘗試包括group by子句

SET SERVEROUTPUT ON 
DECLARE 
    V_SALES NUMBER (10,2); 
    V_ZIP VARCHAR2(5) NOT NULL := 48228; 

    BEGIN 
SELECT SUM(S.GROSS_SALE_PRICE) -- GROUP FUNCTION 
    INTO V_SALES 
    FROM SALES S 
    WHERE CUST_ID = V_ZIP 
    GROUP BY CUST_ID; 
DBMS_OUTPUT.PUT_LINE ('TOTAL SALES FOR ZIP 48228, IS'|| TO_NUMBER(V_SALES)); 
END;