2013-08-20 40 views
0

我有一個數據庫,其中有人的ID和他們欠的錢.. 一個人可以在不同的行中數據庫中找到幾次。SQL批量收集和計數

我需要收集所有金額高於140的人,並將所有信息存入表格(表名稱爲金錢)。

我嘗試使用select語句使用count(Cashdue)> 140,但他不會允許批量收集。

任何想法如何批量收集信息,同時只計算總金額高於140的人?

在此先感謝。

DECLARE 
    Type type_coll_number 
    is table of money.userid%type; 

    t_moneydue type_coll_number; 
BEGIN 
    select money.userid 
    bulk collect into t_moneydue 
    from money 
    group by userid 
    having count(Cashdue) > 140; 

    for i in 1 .. t_moneydue.count 
    loop 
    dbms_output.put_line(t_moneydue(i)); 
    end loop; 
END; 
+3

你可能想要總和(cashdue)大於140而不是計數 –

+0

Omg,我不能相信我沒有弄清楚 - - – user2699663

+0

是的,我也是這樣。你盯着一個問題太久,你沒有看到明顯的閃爍的閃光:) –

回答

1

談到我的意見爲答案:-)

你可能想有總和(cashdue)> 140,而不是指望

0

只要將它的另一個查詢中:

select userid 
bulk collect into t_moneydue 
from (
    select money.userid 
    from money 
    group by userid 
    having sum(Cashdue) > 140 
);