Я хочу, чтобы переменная C_ESTACION_ID имела значения 28 и выполняла запрос, 29 и выполняла запрос, 30 и выполняла запрос
Не знаю точно, чего вы пытаетесь достичь, но я думаю, вам нужно заменить эту строку ...
INSP.C_ESTACION_ID=28
... с
INSP.C_ESTACION_ID in ( 28, 29, 30 )
Однако это не исправит вашу ошибку PLS-00103
, вызванную вашими вложенными утверждениями select. Вам нужно переписать ваш запрос, чтобы он получал итоги в обычных запросах - или подзапросах - и передавал эти значения во внешний запрос для выполнения окончательной арифметики. Примерно так:
SELECT q1.N_ANNO
, q1.C_ESTACION_ID as ESTACION
, 100 * q1.TOTAL_TAX_AMB1 / q2.TAXIS_Y_AMBULANCIAS_PRIMERA ) TAXIS_Y_AMBULANCIAS_PRIMERA
FROM ( SELECT INSP.C_ESTACION_ID
, INSP.N_ANNO
, SUM(CASE WHEN TIPO_USO_VEHICULO='Taxi' THEN 1 ELSE 0 END
+ CASE WHEN TIPO_USO_VEHICULO='Ambulancia' THEN 1 ELSE 0 END ) AS TOTAL_TAX_AMB1
FROM -- -----------
WHERE INSP.N_ANNO = 2016
AND INSP.C_ESTACION_ID in (28, 29, 30)
GROUP BY INSP.C_ESTACION_ID
, INSP.N_ANNO
) q1
join (SELECT N_ANNO, C_ESTACION_ID, COUNT(*) AS TAXIS_Y_AMBULANCIAS_PRIMERA
FROM ITV2_INSPECCIONES
WHERE N_FASE=1) q2
on q1.N_ANNO = q2.N_ANNO
and q1.C_ESTACION_ID = q2.C_ESTACION_ID
Примечание: это может не дать точного ответа, который вам нужен. Также возможно упростить его, объединив два подзапроса q1
и q2
в один подзапрос. Но вы не опубликовали полный запрос и не опубликовали модель данных, примеры данных или объяснения, поэтому мы не можем написать оптимальное рабочее решение.