簡體   English   中英

ID不唯一時,選擇表上的最新注釋

[英]select most recent comment on a table when ID is not unique

我有一個看起來像這樣的表:(使用Sql-server 2012)

ID------------DAY----------HOUR--COMMENT

00050064 | 2015-09-30  | 14:41 | Creaci¢n de Pedido UD3503-0000001 ==> UD4003            
00050064 | 2015-09-30  | 11:52 | Se di¢ de alta el documento: UD4003-0000003                                     
00050064 | 2015-09-30  | 11:42 | Asignaci¢n de t‚cnico: MANUEL REGALADO                                          
00050064 | 2015-09-30  | 11:42 | Cambio de fecha y hora programa                   
00050064 | 2015-09-30  | 11:40 | SE PROGRAMARA POSTERIOR MENTE                      
00050064 | 2015-09-30  | 11:39 | PRUEBA NUMERO SERIE OS  ANALISIS   

我設法按日期和小時排序結果,這樣我可以在頂部看到最后的評論,但是問題是由於我的ID不唯一,所以我不知道如何選擇最新的評論。

我的查詢:

select * from
(
select gdoshistorial.c1 as ID,max(gdoshistorial.c3) as [DAY],
max(gdoshistorial.c4) as [TIME], gdoshistorial.c6 AS COMMENT from gdos   
left join gdoshistorial on GDOSHISTORIAL.c1 = gdos.c1
where gdos.c1 = gdoshistorial.c1 and gdoshistorial.c1 = '00050064'
group by GDOSHISTORIAL.c1,GDOSHISTORIAL.c6
)v

order by [ID],[DAY],[TIME] desc        

請幫助我找到一種選擇第一行並忽略重復ID的方法
預期結果示例:

ID------------DAY----------HOUR--COMMENT

00050064 | 2015-09-30  | 14:41 | Creaci¢n de Pedido UD3503-0000001 ==> UD4003

與其從同一個ID中獲取大量評論,不如我只想查看最新的評論。

select id, date, hour, comment from
(
select row_number() over(partition by id, day order by hour desc) as rn,
* from gdoshistorial ) t
where rn = 1

您可以使用row_number來獲取每天和ID的最新信息。

注意:以上查詢將為您提供每天的最新評論。 如果您只需要最新評論,則無論何時,都可以更改

row_number() over(partition by id, day order by hour desc) as rn

row_number() over(partition by id order by day desc, hour desc) as rn
SELECT TOP 1 *
FROM (
    SELECT gdoshistorial.c1 AS ID
        ,max(gdoshistorial.c3) AS [DAY]
        ,max(gdoshistorial.c4) AS [TIME]
        ,gdoshistorial.c6 AS COMMENT
    FROM gdos
    LEFT JOIN gdoshistorial ON GDOSHISTORIAL.c1 = gdos.c1
    WHERE gdos.c1 = gdoshistorial.c1
        AND gdoshistorial.c1 = '00050064'
    GROUP BY GDOSHISTORIAL.c1
        ,GDOSHISTORIAL.c6
    ) v
ORDER BY 
     [DAY] DESC
    ,[TIME] DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM