Вы пытаетесь сослаться на объект по псевдониму, который находится внутри подзапроса. Вы должны ссылаться на него по правильному псевдониму:
SELECT *
FROM (SELECT ROW_NUMBER() OVER (ORDER BY c.LEGACY_PARTY_ID) AS rownum,
*
FROM (SELECT *,
ROW_NUMBER() OVER (ORDER BY a.LEGACY_PARTY_ID) AS rownuminner
FROM (SELECT *
FROM (SELECT sc.legacy_party_id,
si.supplier_name,
si.supplier_description,
sc.practice,
sc.category,
sc.subcategory,
sui.industry,
sr.risk_level
FROM mip.supplier_classification AS sc
INNER JOIN mip.supplier_info AS si ON si.legacy_party_id = sc.LEGACY_PARTY_ID
INNER JOIN mip.SUPPLIER_INDUSTRY AS sui ON sc.LEGACY_PARTY_ID = sui.LEGACY_PARTY_ID
INNER JOIN mip.SUPPLIER_RISK AS sr ON sc.LEGACY_PARTY_ID = sr.LEGACY_PARTY_ID) AS z ) AS a ) AS c
WHERE rownuminner <= 10) AS c
WHERE rownum > 5;
Это все еще кажется слишком сложным. Глядя на это, он, вероятно, может быть гораздо проще записать как:
WITH CTE AS
(SELECT sc.legacy_party_id,
si.supplier_name,
si.supplier_description,
sc.practice,
sc.category,
sc.subcategory,
sui.industry,
sr.risk_level,
ROW_NUMBER() OVER (ORDER BY sc.legacy_party_id) AS RN
FROM mip.supplier_classification AS sc
INNER JOIN mip.supplier_info AS si ON si.legacy_party_id = sc.LEGACY_PARTY_ID
INNER JOIN mip.SUPPLIER_INDUSTRY AS sui ON sc.LEGACY_PARTY_ID = sui.LEGACY_PARTY_ID
INNER JOIN mip.SUPPLIER_RISK AS sr ON sc.LEGACY_PARTY_ID = sr.LEGACY_PARTY_ID)
SELECT *
FROM CTE
WHERE RN <= ?
AND RN > ?;