SQL批量收集和计数

时间:2013-08-20 11:32:47

标签: oracle plsql

我有一个数据库,里面有人的id和他们欠的钱。 在不同的行上可以在de数据库中找到一个人。

我需要收集所有金额高于140的人,并在表格中获取所有信息(表格名称为金钱)。

我尝试使用select语句(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;

2 个答案:

答案 0 :(得分:1)

将我的评论转化为答案:-)

你可能想要总和(cashdue)> 140而不是计数

答案 1 :(得分:0)

只需将其放在另一个查询中:

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