Kan niet sorteren in subquery?

Ik probeer een subquery te sorteren maar krijg de melding:

The column or alias ‘subQuery.Account’ in the order by-clause does not exist

Terwijl deze kolom weldegelijk aanwezig is, want in de WHERE-clause werkt deze gewoon.

Ik krijg de fout met deze (vereenvoudigde) query:

select * 
from   SalesItemPricesBulk@eol 
where  ID in
       ( select top 1 ID
         from   SalesItemPricesBulk@eol subQuery 
         where  subQuery.ItemCode = 'ITD020201'
         and    ( subQuery.Account = '95d5dbe0-af75-496f-94c1-3af3c4229ed6' 
                  or subQuery.Account IS NOT NULL
                )
         order
         by     subQuery.Account desc
       )

Is hier een verklaring voor? Het voelt onlogisch.

Welke foutcode treedt precies op (itgen...)?

Het is bewust niet mogelijk om op subQuery.Account te sorteren. Dit veld is buiten de scope van de sub-query niet beschikbaar.

Merk op dat sommige databaseplatformen hier wat lakser in zijn, dus het is mogelijk dat het elders wel kan.

Wat zou de query moeten opleveren anders dan:

select * 
from   SalesItemPricesBulk@eol 
where  Item = ( select /*+ low_cost */ id from ExactOnlineREST..Items@eol where code = 'ITD020201' )
and    ( Account = to_guid('95d5dbe0-af75-496f-94c1-3af3c4229ed6')
         or Account is not null
       )
order
by     Account desc
limit  1

De volledige foutcode itgensql509: The column or alias 'subQuery.Account' in the order by-clause does not exist

De query in mijn bericht is een vereenvoudigde van wat ik eigenlijk doe. In werkelijkheid wil ik met een subquery de juiste record “joinen”.
Ik wil dus een record joinen waarbij Account gelijk is aan een GUID, wanneer er geen record is waarbij Account gelijk is aan mijn GUID wil ik het record met GUID null

Wat zou de uitkomst van de Exact Online query moeten zijn in functionele termen?

Ik probeer de juiste verkoopprijs en kostprijs bij factuurregels te zoeken.
Maar hierbij moet er dus rekening worden gehouden met dat deze eventueel klantspecifiek is, de begindatum en eventuele einddatum.

Ik heb het nu opgelost door de benodigde data eerste naar MSSQL te halen en daar te combineren d.m.v. een OUTER APPLY.

Fijn dat al gelukt is. Als het goed is, dan kan het boekhoudpakket automatisch de kostprijs en verkoopprijs vastleggen bij het inboeken, maar de gebruikte methode hoeft niet altijd aan te sluiten bij de gewenste berekenwijze.