sql >> Database teknologi >  >> RDS >> Sqlserver

Max dato virker ikke, alternativ?

Jeg tror, ​​at det kanoniske svar på dette spørgsmål er som følger

with AllData as
(
select ... from ...
where ...
)
select * from allData ad1
inner join 
(
    select pk1, pk2, pk<n>, max(MaxThing) MaxVal 
    from AllData
    group by pk1, pk2, pk<n>
) as ad2 
on (ad1.pk1=ad2.pk1 and ad1.pk2=ad2.pk2 and ad1.pk<n>=ad2.pk<n> 
and  ad1.MaxThing=ad2.MaxVal)

I dit tilfælde cst_recno er PK og inv_trx_date er MaxThing



  1. VÆLG * FRA TABEL (pipelined funktion):kan jeg være sikker på rækkefølgen af ​​rækkerne i resultatet?

  2. php - laravel :Hvordan håndterer man tidsoverlapning i databasen?

  3. VALUES-erklæring i MySQL

  4. VÆLG forespørgsel med flere underforespørgsler til tællinger