[SQL Server 8] La clause order by
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:
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
Citation:
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:
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 :lahola: