rsocol:Mesajul de eroare apare pentru că nu prea are sens ceea ce ceri.
Razvan: in opinia mea lucrurile nu prea sunt chiar asa.Totul depinde de modul in care motorul SGBD-ului (M-SGBD) executa interogarea. Voi incerca sa ma explic.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Mesajul de eroare "ORDER BY items must appear in the select list if SELECT DISTINCT is specified." demonstreaza o LIMITARE a motorului sistemului de gestiune a bazelor de date (SQL Server database engine), limitarea care provine din solutia pe care o alege M-SGBD pentru a elimina duplicatele ca urmare a existentei clauzei DISTINCT in comanda SQL.
Pornind de la exemplu cu tabela T amintit de tine daca vom executa comanda SELECT a,b FROM T ORDER BY b,c vom obtine setul de inregistrari:
a b c (coloana c este prezentata cu scop orientativ)
-------------------
2 10 200 (inregistrarea I)
3 10 300 (inregistrarea II)
2 10 400 (inregistrarea III)
1 10 500 (inregistrarea IV)
Ca urmare a executiei unei posibile comenzi SQL SELECT DISTINCT a,b FROM T ORDER BY b,c M-SGBD ar trebui sa elimine una din inregistrarile I sau III (sunt subliniate). Acest fapt ar putea conduce la urmatoarele POSBILE seturi de inregistrari rezultate:
(a) daca se elimina inregistrarea duplicat I (mai precis perechea de valori 2 - 10) rezultatul ar trebui sa fie:
3 10 300 (inregistrarea II)
2 10 400 (inregistrarea III rămâne)
1 10 500 (inregistrarea IV)
sau
(b) daca se elimina inregistrarea duplicat III (mai precis perechea de valori 2 - 10) rezultatul ar trebui sa fie:
2 10 200 (inregistrarea I rămâne)
3 10 300 (inregistrarea II)
1 10 500 (inregistrarea IV)
Atat in cazul (a) cat si in cazul (b) inregistrarile sunt ordonate după valorile din campurile b şi c.
In concluzie cerinta are sens dpmdv, problema este la SQL Server pentru ca acesta va incerca sa minimizeze timpul de executie a interogarii SQL in ceea ce priveste clauza DISTINCT prin ordonarea/sortarea (ORDER BY) sau grupare inregistrarilor (GROUP BY, care in ultima instanta presupune tot o sortare).
Cu alte cuvinte daca vom avea o interogare SQL SELECT DISTINCT a,b FROM ... M-SGBD va ordona (sorta) sau grupa (a se vedea imaginea) inregistrarile dupa (valorile din campurile) a si b (campuri specificate in clauza SELECT DISTINCT).

In concluzie este normal din acest punct de vedere ca IN FINAL inregistrarile sa fie ordonate dupa valorile campurilor din SELECT DISTICNT si anume a si b.
Ultima concluzie: cerinta nu este "imposibila". Limitarile SQL Server fac ca acesta interogare sa fie "imposibila".
PS : si da, "deşi-urile" de la finalul primul mesaj exprima scepticismul meu in legatura cu ordinea in care vor fi afisate IN FINAL inregistrarile din subinterogare.