Sql 标量子查询中的子查询失败,错误为ORA-00936缺少表达式
这是不起作用的查询:Sql 标量子查询中的子查询失败,错误为ORA-00936缺少表达式,sql,oracle,ora-00936,Sql,Oracle,Ora 00936,这是不起作用的查询: SELECT distinct ord.DateOrdered , (SELECT docno FROM th_mm_c_orderline_history WHERE th_mm_c_orderline_history_id in (SELECT max(th_mm_c_orderline_history_id) FROM th_mm_c_orderline_history
SELECT distinct ord.DateOrdered
, (SELECT docno
FROM th_mm_c_orderline_history
WHERE th_mm_c_orderline_history_id
in (SELECT max(th_mm_c_orderline_history_id)
FROM th_mm_c_orderline_history
GROUP BY c_orderline_id )
order by docno,c_orderline_id) as docno
FROM c_order ord
INNER JOIN c_orderline on c_orderline.c_order_id = ord.c_order_id
INNER JOIN th_mm_c_orderline_history
on th_mm_c_orderline_history.c_order_id=ord.c_order_id
它向我抛出ORA-00936缺失表达式错误
此查询工作正常:
SELECT docno
FROM th_mm_c_orderline_history
WHERE th_mm_c_orderline_history_id
in (SELECT max(th_mm_c_orderline_history_id)
FROM th_mm_c_orderline_history
GROUP BY c_orderline_id )
order by docno,c_orderline_id as docno
只需从内联select中删除ORDERBY子句。在那里你不能使用ORDEBY子句。如果需要,您可以在“外部选择”中使用它…这就是您可以在不出错的情况下执行所有三项操作的方式:
SELECT distinct ord.DateOrdered
, (SELECT docno FROM th_mm_c_orderline_history
WHERE th_mm_c_orderline_history_id
in (SELECT max(th_mm_c_orderline_history_id)
FROM th_mm_c_orderline_history
GROUP BY c_orderline_id)
) as docno
FROM c_order ord
INNER JOIN c_orderline on c_orderline.c_order_id = ord.c_order_id
INNER JOIN th_mm_c_orderline_history on th_mm_c_orderline_history.c_order_id=ord.c_order_id
可以在整个select语句的末尾使用ORDERBY语句。由于select语句中未使用列C_ORDERLINE_ID,order by语句中可能会出现错误。在下面尝试这个版本
SELECT DISTINCT
C_ORDER.DATEORDER,
(SELECT DOCNO
FROM TH_MM_C_ORDERLINE_HISTORY
WHERE C_ORDER_ID = C_ORDER_ID
AND TH_MM_C_ORDERLINE_HISTORY_ID IN ( SELECT MAX (TH_MM_C_ORDERLINE_HISTORY_ID)
FROM TH_MM_C_ORDERLINE_HISTORY
GROUP BY C_ORDERLINE_ID)) AS DOCNO,
C_ORDER.DOCUMENTNO
FROM C_ORDER
INNER JOIN C_ORDERLINE ON C_ORDERLINE.C_ORDER_ID = C_ORDER_ID
ORDER BY DOCNO, C_ORDERLINE_ID;
Hi@nonsrithong请以文本形式向我们显示不起作用的查询?选择distinct order.DateOrdered,从th_mm_c_orderline_history中选择docno,其中Thu mm_c_orderline_history_id中选择maxth_mm_c_orderline_history_id从Thu mm_c_orderline_history组中按c_orderline_id按docno排序,c_orderline_id作为c_order ord内部连接c_orderline上的文档号。c_order_id=ord.c_order_id内部连接H_mm_c_orderline_历史记录。c_order_id=ord.c_order_id请不要将代码作为图像发布。请参阅此处了解更多详细信息,为什么:Hi@nonsrithong我希望我的回答对您有所帮助。请检查是否有帮助或正确: