Hoe in een SQL Select query ORDER BY voorwaardelijk maken ?

Status
Niet open voor verdere reacties.

leifoet

Gebruiker
Lid geworden
7 okt 2007
Berichten
326
Probeerde dit in onderstaande SQL met <IIF> : bijvoorbeeld als AB_NR=10 dan ORDER BY omschrijving, anders ORDER BY tijd.

Code:
SQL="SELECT A_Id AS T_ID, Tijd, Datum, AB_NR, Aantal, Omschrijving FROM TabelA "&_
"UNION ALL SELECT B_Id AS T_ID, Tijd, Datum, AB_NR, Aantal, Omschrijving, FROM TabelB AS Details ORDER BY (IIF(AB_NR=10,omschrijving,tijd))"

Voor de volledigheid : alle verschillende AB_NR (bijvoorbeeld 10, 20, 30 ...) zijn opgelijst in een tabelC - voor elk AB_NR uit tabelC wordt de Select Query van hierboven doorlopen en de passende records (die corresponderen met de passende AB_NR) worden gesorteerd volgens ORDER BY.

Krijg evenwel volgende error message :
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] The ORDER BY expression (IIf(AB_NR=10,omschrijving,tijd)) includes fields that are not selected by the query. Only those fields requested in the first query can be included in an ORDER BY expression.

Kan deze error message vermeden worden ?
Graag tips.
 
Ik maak me heel sterk dat het überhaupt kan; sorteren doe je op één of meer velden, maar je sorteert altijd de complete dataset. Tenzij je de tabellen filtert op AB_NR=10, en dus alle records aan de selectie voldoen (dan heb je dus de IIF ook niet nodig) gaat dit (nogmaals: ben alleen goed thuis in Access) niet werken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan