Sortowanie po dwóch kolumnach - problem

1

Witam,
Mam taki problem. Powiedzmy, że mam taką tabelkę:
title

Chciałbym ją posortować w taki sposób, żeby na początku wyświetlały się rekordy dla klienta z najpóźniejszą datą , ale w taki sposób, że jeśli ten klient ma jeszcze jakąś wcześniejszą datę, to najpierw jest wyświetlana właśnie ta data, a nie data innego klienta z późniejszą datą (Wiem, trochę trudno mi to wytłumaczyć:) Generalnie chodzi o to żeby rekordy dotyczące jednego klienta były koło siebie, ale były posortowane według daty malejąco oraz 1 rekordy u góry powinny być dla klienta z najpóźniejszą datą. Czyli tabelka wynikowa powinna wyglądać tak:

title

kod dla tabelki wejściowej:

 
```CREATE table #test
(
customerid int,
data varchar(10)

)

insert into #test(CustomerID,data) values(1004,	'2015-11-23')
insert into #test(CustomerID,data) values(1004,	'2015-10-21')
insert into #test(CustomerID,data) values(1017,	'2015-11-16')
insert into #test(CustomerID,data) values(1017,	'2015-11-02')
insert into #test(CustomerID,data) values(1017,	'2015-10-07')
insert into #test(CustomerID,data) values(1020,	'2015-10-22')
insert into #test(CustomerID,data) values(1025,	'2015-11-23')
insert into #test(CustomerID,data) values(1025,	'2015-11-09')
insert into #test(CustomerID,data) values(1025,	'2015-10-21')
insert into #test(CustomerID,data) values(1026,	'2015-11-17')
insert into #test(CustomerID,data) values(1026,	'2015-11-03')
insert into #test(CustomerID,data) values(1026,	'2015-10-05')
insert into #test(CustomerID,data) values(1031,	'2015-11-24')
insert into #test(CustomerID,data) values(1033,	'2015-11-24')
insert into #test(CustomerID,data) values(1033,	'2015-10-27')
insert into #test(CustomerID,data) values(1033,	'2015-10-08')


select * from #test
1

Tak naprawde potrzebujesz posortować po maksymalnej dacie w ramach klienta, a później po kliencie i dacie:

Select
   tb.*
 from 
   tb
   inner join (select
                   customerid
                   ,max(date) mdt
               from
                   tb
               group by
                   customerid
               ) mtb on mtb.customerid = tb.customerid
order by
     mdt DESC
     ,customerid
     ,date desc

1 użytkowników online, w tym zalogowanych: 0, gości: 1