sql - ORA-01722: 添加子查询时抛出无效数字
问题描述
我的查询中有错误 ORA-01722。这段代码让我得到了命令列表。我需要添加一个子查询以仅获取最后订购的命令。以下代码运行良好(使用业务对象生成),我尝试添加我在评论中留下的行
SELECT
ltrim(SAP_MARA.MATNR,'0'),
SAP_MAKT.MAKTX,
SAP_MARA.MTART,
SAP_MARA.MATKL,
SAP_EKKO.EKGRP,
SAP_EKPA.LIFN2,
SAP_EKKO.EBELN,
SAP_EKPO.netwr,
SAP_EKKO.AEDAT
-- r.lastDate
FROM
SAP_MARA,
SAP_MAKT,
SAP_EKKO,
SAP_EKPA,
SAP_EKPO
--,( select EBELN , max(AEDAT) as lastDate from SAP_EKKO group by EBELN) r
WHERE
( SAP_EKKO.MANDT=SAP_EKPO.MANDT and SAP_EKKO.EBELN=SAP_EKPO.EBELN )
AND ( SAP_MAKT.MATNR(+)=SAP_MARA.MATNR
and SAP_MAKT.SPRAS(+)='F' )
AND ( SAP_MARA.MATNR(+)=SAP_EKPO.MATNR )
AND ( SAP_EKPO.EBELN like '45%'
and SAP_EKPO.MATNR<>' ' )
AND ( SAP_EKKO.EBELN like '45%' and SAP_EKKO.LIFNR<>' ' )
AND ( SAP_EKPA.MANDT=SAP_EKKO.MANDT and SAP_EKPA.EBELN=SAP_EKKO.EBELN )
AND ( SAP_EKKO.BUKRS= '1000' )
--and SAP_EKKO.AEDAT = r.lastDate
;
当我将它称为查询时,子查询也可以工作。我知道这个错误来自尝试将字符串转换为数字(可能在 WHERE 子句中),但我不明白为什么只有当我添加这几行时才会发生这种情况。
有人能帮我吗?
解决方案
我相信如果你移动自我加入,你应该能够避免错误。尝试以下操作:
SELECT
ltrim(SAP_MARA.MATNR,'0'),
SAP_MAKT.MAKTX,
SAP_MARA.MTART,
SAP_MARA.MATKL,
k.EKGRP,
SAP_EKPA.LIFN2,
k.EBELN,
SAP_EKPO.netwr,
k.AEDAT
FROM
SAP_MARA,
SAP_MAKT,
SAP_EKKO k,
SAP_EKPA,
SAP_EKPO
WHERE
( SAP_EKKO.MANDT=SAP_EKPO.MANDT and SAP_EKKO.EBELN=SAP_EKPO.EBELN )
AND ( SAP_MAKT.MATNR(+)=SAP_MARA.MATNR
and SAP_MAKT.SPRAS(+)='F' )
AND ( SAP_MARA.MATNR(+)=SAP_EKPO.MATNR )
AND ( SAP_EKPO.EBELN like '45%'
and SAP_EKPO.MATNR<>' ' )
AND ( SAP_EKKO.EBELN like '45%' and SAP_EKKO.LIFNR<>' ' )
AND ( SAP_EKPA.MANDT=SAP_EKKO.MANDT and SAP_EKPA.EBELN=SAP_EKKO.EBELN )
AND ( SAP_EKKO.BUKRS= '1000' )
and k.AEDAT = (select max(AEDAT) from SAP_EKKO k2 where k2.ebeln = k.ebeln)
;
推荐阅读
- matlab - Matlab - 使用 impoly 将 Resizeable 设置为 False
- c# - 如何从 windows 窗体应用程序中的 button_Click 事件访问变量?
- python - 在python中获取所有独特的组合
- python - 使用 scipy.fftpack 进行频域过滤,ifft2 没有给出想要的结果
- mysql - 使用 SQS 移动数千个数据库的好主意?
- php - 获取有很多关系数据 Laravel 并使用 avg 函数
- r - R - 使散点图看起来像一个点图,计数高于和低于零
- actionscript-3 - 将事件侦听器添加到多维数组
- asp.net-core - 填充 AspNetUserLogins 和 AspNetUserTokens
- r - 如何将多个excel文件中的多张工作表导入一个列表-readxl R