sql - ORA-00904: 无效的标识符。"TT"."H_NO": 无效标识符
问题描述
我对 Oracle 缺乏经验,我不明白我在哪里做错了。我的查询正在顺利运行 MSSSQL,但我在 oracle 中遇到错误。
ERROR ( AND MTH.M_NO =TT.H_NO) MALIYET)
ORA-00904: "TT"."H_NO": invalid identifier.
select TT.H_NO,
TV.H_TARIH,
TV.H_BITTAR,
( SELECT SUM(
( M_SYTOPLAM
+ M_COCUK
+ M_YAKACAK
+ M_MTOPLAM
+ M_FMTOPLAM
+ ( ( M_SSKI + M_EK2 + M_EK1)
+ M_TISVEREN
+ M_HOLKES
+ M_HOLKES1
)
- M_BRUTKES
+ M_ESIPRIM
+ M_ESARTIS
+ M_XEK9
)
- ( CASE
WHEN CHARINDEX('05510',NVL(MTK.M_CHR1,MTH.M_EKKOD2)) > 0
AND MTH.M_XSGRT=1
THEN ROUND((MTH.M_SSKM + MTH.M_EK3) * 0.05,2)
ELSE 0.00
END
+ ( CASE
WHEN MTH.M_XSGRT = 1
AND RTRIM(NVL(M_EKKOD2,' '))='05746'
AND MTH.M_SSKI>0
AND MTH.M_XEK4 =0
THEN ROUND((MTH.M_SSKM - ROUND(((((MTH.M_TARTIS*2))/(MTH.M_SSKI))*MTH.M_SSKM),2))*.05,2)
ELSE 0
END
)
)
)
FROM H_MATRAH MTH
INNER JOIN H_MATEK MTK
ON MTH.M_NO=MTK.M_NO
AND MTH.M_YIL=MTK.M_YIL
AND MTH.M_AY=MTK.M_AY
AND MTH.M_SKOD=MTK.M_SKOD
AND MTH.M_YIL = 2020
AND MTH.M_AY = 3
AND MTH.M_NO =TT.H_NO
) MALIYET
from TERFNAKL TT
INNER JOIN TERFNAKLV TV
ON TT.H_NO=TV.H_NO
解决方案
在您的 Oracle 版本中使用如下
代替
AND MTH.M_NO =TT.H_NO
和
WHERE MTH.M_NO =TT.H_NO
我已经进行了一些测试来识别问题
以下不起作用
select (select tt.today from dummy1 tb
INNER JOIN dummy1 tc on
tb.branch_code=tc.branch_code
and tb.eof=tc.eof
and tb.branch_code=tt.branch_code )
from dummy2 tt
以下作品
select (select tt.today from dummy1 tb
INNER JOIN dummy1 tc on
tb.branch_code=tc.branch_code
and tb.eof=tc.eof
where tb.branch_code=tt.branch_code )
from dummy2 tt
推荐阅读
- android - 如何检测密钥是否在 TEE 或钛芯片内部生成
- rust - 内置测试器“定义”没有像我预期的那样工作
- haskell - 如何建立对 Servant 类型错误的直觉?
- oracle - 如何使用 Oracle XML DB Webservices 将表作为一行返回
- android - 从服务器获取数据后如何缓存数据?
- c# - 将文件分类到目录中
- r - Shiny 中的 Kmeans 实现
- wordpress - 如何使用 elementor 在 wordpress 中从头开始自定义页眉和页脚?
- android - “getDisplayLanguage()”总是返回“English”
- firebase-dynamic-links - 如何让我的 Firebase 动态链接重定向到我在桌面上的网站和我在移动设备上的即时应用