Hola @Pablo68, primero que nada tienes algunos errores en tu consulta.
Aquí te dejo mi código para que evalúes si funciona para ti.
DATA: BEGIN OF st_it,
carrid LIKE scarr-carrid,
carrname LIKE scarr-carrname,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
price LIKE sflight-price,
END OF st_it.
DATA: tb_vuelos LIKE TABLE OF st_it.
DATA: lv_ano TYPE c LENGTH 5.
CONCATENATE sy-datum(4) '%' INTO lv_ano.
SELECT sflight~carrid scarr~carrname sflight~connid sflight~fldate sflight~price
FROM sflight INNER JOIN scarr
ON sflight~carrid = scarr~carrid
INTO TABLE tb_vuelos
WHERE sflight~carrid = 'UA'
AND sflight~fldate LIKE lv_ano.
Efectivamente con un variable que contenga el “año+%” funciona
Osea que no se pueden usar funciones dentro de una WHERE de una SELECT ??
Como por ejemplo comparar los dos primeros caracteresde un campo, o los 3 ultimos, o el dia de una fecha, o el año, o el mes, sino es a traves de creación de variales ?? Tal y como lo estaba intentado yo ??
Por ejemplo. como podría sacar los vuelos de junio, julio y agosto??
Recuerda que en ABAP no es SQL Nativo.
Te recomiendo revises un tema muy importante que son los RANGES, esto te ayudara mucho si lo combinas bien con un los patrones que crees.
Saludos.