一天

2014-02-10 63 views
0

请看看这个结果表发现最后一个记录,我想在31-dec-2013一天

INVOICE_NUMBER INVOICE_DATE  FK_SALES_REP_ID 
519740000010026 12/31/13 10:14 AM 121 
518210000010868 12/31/13 7:34 AM 91 
519740000010050 12/31/13 2:29 PM 121 
519920000010273 12/31/13 10:25 AM 94 
514990000010269 12/31/13 10:51 AM 127 
514990000010270 12/31/13 11:09 AM 127 
505700000/31/13 12:12 PM 106 
518210000010867 12/31/13 7:24 AM 91 

结果表检索sales_rep的最后Invoice_Number

INVOICE_NUMBER INVOICE_DATE  FK_SALES_REP_ID 
518210000010868 12/31/13 7:34 AM 91 
519920000010273 12/31/13 10:25 AM 94 
519740000010050 12/31/13 2:29 PM 121 
505700000/31/13 12:12 PM 106 
514990000010270 12/31/13 11:09 AM 127 
+0

你能告诉我们你有什么到目前为止已经试过? –

+2

您使用的是什么RDBMS? –

回答

0

当你没有指定你的DBMS这是标准的SQL:

select * 
from 
(
    select t.*, 
     row_number() 
     over (partition by FK_SALES_REP_ID 
      order by INVOICE_DATE desc) as rn 
    from tab as t 
    where cast(INVOICE_DATE as date) = '12/31/13' 
) as dt 
where rn = 1 
+0

其工作,为第一价值? – Salman

+0

更改排序顺序以升序:-) – dnoeth

+0

感谢其工作正常 – Salman

0

你的解决方案可能会看起来像这样。重要的是确保选择MAX(INVOICE_TIME),其中日期等于您想要的日期。

SELECT * FROM Your.Table 
WHERE 
    INVOICE_DATE = 
     (SELECT MAX(INVOICE_DATE) FROM Your.Table 
     WHERE DATE(INVOICE_DATE) = '12/31/2013') 
+0

请编辑你的问题。 –