最少(实际值,480)+案例当原因为“培训”时,然后支付其他0结束)作为stg的tot,其中ref_id='H1'按ref_id分组)选择ref_id,案例当tot我们可以在打包过程中调用SQL。这只是选择与查询投影匹配的变量(或记录变量)的问题。PL/S
最少(实际值,480)+案例当原因为“培训”时,然后支付其他0结束)作为stg的tot,其中ref_id='H1'按ref_id分组)选择ref_id,案例当tot我们可以在打包过程中调用SQL。这只是选择与查询投影匹配的变量(或记录变量)的问题。PL/S,sql,oracle,Sql,Oracle,最少(实际值,480)+案例当原因为“培训”时,然后支付其他0结束)作为stg的tot,其中ref_id='H1'按ref_id分组)选择ref_id,案例当tot我们可以在打包过程中调用SQL。这只是选择与查询投影匹配的变量(或记录变量)的问题。PL/SQL文档,甚至这个站点,如果你不能自己理解的话,都会有很多例子。 + -------+--------+------+----------+ | Ref_ID | Actual | Paid | Reason | + -------+---
最少(实际值,480)+案例当原因为“培训”时,然后支付其他0结束)作为stg的tot,其中ref_id='H1'按ref_id分组)选择ref_id,案例当tot我们可以在打包过程中调用SQL。这只是选择与查询投影匹配的变量(或记录变量)的问题。PL/SQL文档,甚至这个站点,如果你不能自己理解的话,都会有很多例子。 + -------+--------+------+----------+ | Ref_ID | Actual | Paid | Reason | + -------+--------+------+----------+ | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 0 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 0 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 0 | 480 | TRAINING | | H1 | 0 | 0 | | | H1 | 360 | 0 | | | H1 | 360 | 0 | | + -------+--------+------+----------+
SELECT
CASE WHEN (SUM(CASE WHEN (ACTUAL)>480 THEN 480 ELSE (ACTUAL) END))>1440 THEN
((SUM(CASE WHEN (ACTUAL)>480 THEN 480 ELSE (ACTUAL) END))-1440) ELSE 0
END SINGLE_RATE
FROM STG WHERE REF_ID='H1'
GROUP BY REF_ID;
SELECT
CASE WHEN (SUM(CASE WHEN (ACTUAL)>480 THEN 480 ELSE (ACTUAL) END)+(case when reason = 'training' then paid else 0 end ))>1440 THEN
((SUM(CASE WHEN (ACTUAL)>480 THEN 480 ELSE (ACTUAL) END)+(case when reason = 'training' then paid else 0 end ))-1440) ELSE 0
END SINGLE_RATE
FROM STG WHERE REF_ID='H1'
GROUP BY REF_ID;
ORA-00979: not a GROUP BY expression
00979. 00000 - "not a GROUP BY expression"
*Cause:
*Action:
SELECT
(sum ( (CASE WHEN (ACTUAL)>480 THEN 480 ELSE (ACTUAL) END) + case when reason = 'training' then paid else 0 end )-1440) SINGLE_RATE
FROM STG WHERE REF_ID='H1'
GROUP BY REF_ID
having sum ( (CASE WHEN (ACTUAL)>480 THEN 480 ELSE (ACTUAL) END) + case when reason = 'training' then paid else 0 end )>1440;
select ref_id
, sum ( least(actual, 480) + case when reason = 'training' then paid else 0 end ) as tot
from stg
group by ref_id
/
with cte as (
select ref_id
, sum ( least(actual, 480) + case when reason = 'training' then paid else 0 end ) as tot
from stg
group by ref_id
)
select ref_id
case
when tot <= 1440 then tot
else tot - 1440
end as adjusted_tot
from cte
/