选择最早的发票日期和每个供应商的最大分配线金额

时间:2015-07-31 14:45:22

标签: oracle plsql

使用Oracle,PSQL,我试图找出每个供应商的最早发票日期。这很简单,但我也试图找出最早发票上的最大分配线,这样我就可以确定发票属于哪个业务部门。细分由以下示例中的SEGMENT_NUMBER确定。我知道这里需要一个子查询或多个子查询,但是我不知道。下面的语法甚至不是很接近,但我想提供一些反馈意见。

SELECT 

       SUPPLIER_ID,
       INVOICE_NUMBER,
       SEGMENT_NUMBER,
       MIN(INVOICE_DATE) as EARLIEST_INV_DATE,
       MAX(DISTRIBUTION_AMOUNT) as MAX_DIST_LINE

  FROM INVOICE_DIST

1 个答案:

答案 0 :(得分:1)

使用像RANK()这样的分析功能。

SELECT SUPPLIER_ID,
       INVOICE_NUMBER,
       SEGMENT_NUMBER,
       INVOICE_DATE,DISTRIBUTION_AMOUNT
       (SELECT SUPPLIER_ID,
       INVOICE_NUMBER,
       SEGMENT_NUMBER,
       INVOICE_DATE,DISTRIBUTION_AMOUNT,
       RANK() OVER(PARTITION BY SUPPLIER_ID ORDER BY INVOICE_DATE,DISTRIBUTION_AMOUNT DESC) POSITION  FROM INVOICE_DIST) TBL WHERE POSITION=1;