我试图解码查询中的值。基于现状,我想要么返回sysdate
或列的MAX:解码与聚合和非聚合结果
SELECT DECODE(t2.productstatus, 'Stores', SYSDATE, MAX(t1.actual_moveout))
INTO v_last_moveout
FROM rw_product_flow t1
JOIN rw_product_master t2
ON t1.facility = t2.facility
AND t1.product = t2.product
WHERE t1.facility = p_facility
AND t1.product = p_product;
然而,这是抛出一个ORA-00937不是一个单一的组群功能可按错误,因为SYSDATE不是一个聚合函数。如何在不编写详细的IF块的情况下达到此目的的最佳方法是什么?
这不需要一个'组通过t2.productstatus'? – Laurence
是的,是的。添加'GROUP BY t1.facility,t1.product,t2.productstatus'可以得到理想的结果。 – Paul
@Laurence - 看起来我们有赢家;请添加,作为答案,也许有一些解释。 –