Преобразование SQL в Oracle для внешнего применения.
У меня есть следующий запрос SQL:
CREATE VIEW [dbo].[uvw_Templates_RecHist]
AS
SELECT RH.company_id
, CI.company_name
, RH.rec_date
, RH.rec_code
, RH.analyst_id
, previous_rec_date = LRH.rec_date
, previous_rec_code = LRH.rec_code
, previous_analyst_id = LRH.analyst_id
, [status] = CASE WHEN LRH.rec_date IS NULL THEN 'NEW'
WHEN RH.rec_code <> LRH.rec_code THEN 'CHANGE'
ELSE '' END
, load_date = LoadDate
FROM dbo.tblRecHist RH
LEFT JOIN dbo.tblCompInd CI
ON RH.company_id = CI.company_id
OUTER APPLY (
SELECT A.company_id, A.rec_date, A.rec_code, A.analyst_id
FROM dbo.tblRecHist A
JOIN (
SELECT company_id, rec_date = MAX(rec_date)
FROM dbo.tblRecHist WHERE rec_date < RH.rec_date
GROUP BY company_id
) B
ON A.company_id = B.company_id AND A.rec_date = B.rec_date
WHERE A.company_id = RH.company_id
) LRH
LEFT JOIN (
SELECT LoadDate = MAX(LoadDate), AnalystID = MAX(AnalystName),
RecDate, CompanyID
FROM dbo.tblTemplates_LoadLog
WHERE Loaded = 1
GROUP BY RecDate, CompanyID
)LL
ON RH.company_id = LL.CompanyID AND RH.rec_date = LL.RecDate
, который я преобразовал в запрос ниже Oracle:
CREATE VIEW uvw_Templates_RecHist
AS
SELECT RH.company_id
, CI.company_name
, RH.rec_date
, RH.rec_code
, RH.analyst_id
, LRH.rec_date
, LRH.rec_code
, LRH.analyst_id
, CASE WHEN LRH.rec_date IS NULL THEN 'NEW'
WHEN RH.rec_code <> LRH.rec_code THEN 'CHANGE'
ELSE '' END
, LoadDate as load_date
FROM tblRecHist RH
LEFT JOIN tblCompInd CI
ON RH.company_id = CI.company_id
LEFT OUTER JOIN (
SELECT A.company_id, A.rec_date, A.rec_code, A.analyst_id
FROM tblRecHist A
JOIN (
SELECT company_id, MAX(rec_date)
FROM tblRecHist WHERE rec_date < RH.rec_date
GROUP BY company_id
) B
ON A.company_id = B.company_id AND A.rec_date = B.rec_date
WHERE A.company_id = RH.company_id
) LRH
ON LRH.company_id=CI.company_id
LEFT JOIN (
SELECT MAX(LoadDate), MAX(AnalystName), RecDate, CompanyID
FROM tblTemplates_LoadLog
WHERE Loaded = 1
GROUP BY RecDate, CompanyID
)LL
ON RH.company_id = LL.CompanyID AND RH.rec_date = LL.RecDate
но когда я выполняю запрос оракула, я получаю следующую ошибку:
ORA-00904: "RH". "REC_DATE": неверный идентификатор
1.Почему эта ошибка возникает, даже еслинет ошибки времени компиляции.2. Как решить эту проблему? Есть ли другой способ, которым мы можем преобразовать запрос из SQL в Oracle.