Bonjour les amis

Je développe une application VB6 sous SQL Server 2000.

Je me demande pourquoi, lorsque j'exécute cette requête

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
select distinct rtrim(mqltmq) as type, rtrim(mqldsf) as Description, rtrim(mqldsa) as DescriptionA
from repartsku
	join lassonde.dbo.iim on (noproduit = iprod) 
	join lassonde.dbo.limq on (imarqu = mqmarq)
	join lassonde.dbo.ltmq on (mqltmq = mqtype)
where annee = 2006 and semaine = 2 
order by mqldsf
Je recois le message d'erreur suivant

Server: Msg 145, Level 15, State 1, Line 1
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
alors que si je modifie ma clause order by par ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
select distinct rtrim(mqltmq) as type, rtrim(mqldsf) as Description, rtrim(mqldsa) as DescriptionA
from repartsku
	join lassonde.dbo.iim on (noproduit = iprod) 
	join lassonde.dbo.limq on (imarqu = mqmarq)
	join lassonde.dbo.ltmq on (mqltmq = mqtype)
where annee = 2006 and semaine = 2 
order by 2
Cela fonctionne parfaitement....

Pour l'instant, j'ai utilisé la 2e méthode, mais je ne comprend pas pourquoi lorsque je nomme la colonne cela ne fonctionne pas.... Je ne comprend pas l'erreur, puisque mon champ du order by apparaît bel et bien dans mon select....

Merci beaucoup