0

我有一个表(processed_amounts),它显示了“金额”、“日期处理”和处理金额的“代理”。我需要一个查询,它将通过指定数量的已处理条目(例如,50 个已处理条目)在指定时间段内(例如上个月)获取多个代理的列表。有没有办法在一个查询中编写所有内容,因为我将每月运行一次?假设我需要一份报告,其中包含 10 个不同代理的 50 个条目,这些条目是在 2018 年 5 月处理的,我可以将其放入一个查询中吗?

因此,例如,表格如下所示;

Date_Processed │ Amount │ Agent   
01/05/2018     │ £35:90 │ tbrown  
25/05/2018     │ £79:00 │ asmith 

我的查询需要为 2018 年 5 月的 tbrown 和 asmith 提取 50 个条目。

非常感谢您的帮助

4

1 回答 1

0

如果我理解正确,您可以使用row_number()

select pa.*
from (select pa.*,
             row_number() over (partition by agent order by ?) as seqnum
      from processed_amounts pa
      where agent in ( . . . ) and -- list of agents here
            date_processed >= '2018-05-01' and
            date_processed < '2018-06-01'
     ) pa
where seqnum <= 50;

?是用于确定您想要哪个50 的列 - 一个月中的第一个,最后一个,任意 50,随机 50 等等。如果您不在乎哪 50 行,则可以agent输入任意 50 行。

于 2018-06-12T10:30:10.463 回答