2017-06-13 48 views
0

我想選擇一個計數,然後插入如下變量v_voyage1_orders20,有沒有人知道這是否可能和正確的語法?進入聲明的級聯/追加

SELECT COUNT(DISTINCT KLIENTS_ORDER_ID) 
INTO CONCAT(v_voyage || v_lcntr || _orders20) 
+0

你不能通過concat創建一個變量名。你必須定義它的硬代碼或使用集合。除此之外,還提供樣本數據和您嘗試過的查詢。 – Debabrata

+0

嗨Debabrata,我想循環通過從1-6獲得v_voyage1_orders20,v_voyage2_orders20等什麼是最好的方式來做到這一點? –

+0

這將有助於更好地瞭解情況,如果提供樣本數據和您的預期輸出。 – Debabrata

回答

0

正如評論中指出的那樣,我們確實需要更多信息/上下文才能得到正確的答案。

然而,它是一個安靜的早晨,所以我猜測了一下。

這將使您將每個klient_no與每個klient的不同訂單數統一到一個數組中。

DECLARE 
    TYPE klient_orders_rt IS RECORD 
    (klient_no klient_order.klient_no%TYPE, 
    klient_ord_count NUMBER); 
    TYPE order_count_t IS TABLE OF klient_orders_rt; 
    l_order_count order_count_t; 
BEGIN 
    SELECT klient_no, COUNT(DISTINCT klints_order_id) 
    BULK COLLECT INTO l_order_count 
    FROM klient_order 
    GROUP BY klient_no; 

    FOR i IN 1..l_order_count.COUNT LOOP 
    DBMS_OUTPUT.PUT_LINE('RECORD '||TO_CHAR(i)||' : '||l_order_count(i).klient_no||' Num orders: '||TO_CHAR(l_order_count(i).klient_ord_count)); 
    END LOOP; 
END; 

這可能會給你一些接近你的東西,但技術無疑是值得了解的。