Itgensql056: Syntax error between the two '***' on line 11, column 26:

Bij het uitvoeren van de volgende query krijg ik de foutmelding:

itgensql056: Syntax error between the two ‘***’ on line 11, column 26:
–– Totalen per art… vrd.costpricelabel * * * ‘Kostprijs’ * * *, sum ( vrd.costpr…
Error: mismatched input ‘‘Kostprijs’’ expecting {< E O F >, ‘;’}.
2021-11-01 12:44:53.402 Error itgensql056: Invantive.Basics.InvantiveSqlException

Query:

select vrd.ITEMGROUPCODE 
,      vrd.ITEMGROUPDESCRIPTION
,      vrd.ITEMCODE 
,      vrd.ITEMDESCRIPTION
,      listagg(distinct vrd.suppliername) label 'Mogelijke Leveranciers'
,      vrd.unit
,      vrd.ItemGroupGLStockCode label 'Voorraad/kostenrekening'
,      vrd.costpricelabel 'Kostprijs'
,      sum
       ( vrd.costprice
       *
         vrd.QuantityReceived
         * 
         case 
         when vrd.sign = '+' 
         then +1 
         else -1 
         end
       )
       label 'Voorraadwaarde'
,      sum
       ( vrd.QuantityReceived
         * 
         case 
         when vrd.sign = '+' 
         then +1 
         else -1 
         end
       )
       label 'Verwachte Fysieke Voorraad'
,      cast(null as number) label 'Getelde Voorraad'
from   ARTICLES@InMemoryStorage vrd
group
by     vrd.ITEMGROUPCODE 
,      vrd.ITEMGROUPDESCRIPTION
,      vrd.ITEMCODE
,      vrd.ITEMDESCRIPTION
,      vrd.unit
,      vrd.ItemGroupGLStockCode
,      vrd.costprice

Wat is er fout aan de query?

De itgensql056 foutmelding geeft aan dat het statement niet volgens de Invantive SQL-grammatica is. De eerst gedetecteerde afwijking zit op regel 11, kolom 26 en staat na de drie sterretjes:

–– Totalen per art… vrd.costpricelabel * * * ‘Kostprijs’ * * *, sum ( vrd.costpr…

Er staat ook dat een EOF (End-of-File) of ‘;’ verwacht werd in plaats van de tekstconstante ‘Kostprijs’, maar dat zegt meestal niet zoveel. Meestal zit de fout er kort voor. In dit geval wordt het keyword label niet herkend omdat het onderdeel is gaan uitmaken van de naam van een niet-bestaande kolom in de tabel met alias vrd.

Door een spatie toe te voegen voor label wordt dit keyword weer herkent en zal de query uitgevoerd kunnen worden:

select vrd.ITEMGROUPCODE 
,      vrd.ITEMGROUPDESCRIPTION
,      vrd.ITEMCODE 
,      vrd.ITEMDESCRIPTION
,      listagg(distinct vrd.suppliername) label 'Mogelijke Leveranciers'
,      vrd.unit
,      vrd.ItemGroupGLStockCode label 'Voorraad/kostenrekening'
,      vrd.costprice label 'Kostprijs'
,      sum
       ( vrd.costprice
       *
         vrd.QuantityReceived
         * 
         case 
         when vrd.sign = '+' 
         then +1 
         else -1 
         end
       )
       label 'Voorraadwaarde'
,      sum
       ( vrd.QuantityReceived
         * 
         case 
         when vrd.sign = '+' 
         then +1 
         else -1 
         end
       )
       label 'Verwachte Fysieke Voorraad'
,      cast(null as number) label 'Getelde Voorraad'
from   ARTICLES@InMemoryStorage vrd
group
by     vrd.ITEMGROUPCODE 
,      vrd.ITEMGROUPDESCRIPTION
,      vrd.ITEMCODE
,      vrd.ITEMDESCRIPTION
,      vrd.unit
,      vrd.ItemGroupGLStockCode
,      vrd.costprice

Wat is er fout aan de query?