我只想在这个月显示结果?我怎样才能用 oracle SQL 做到这一点?
select 'Working Equipment' label, count(*)
from LOGS_HISTORY
where MODE__ = 'Working'
group by MODE__
having TIME_ < add_months(sysdate, -1)
union all
select 'Standby Equipment' label, count(distinct TAG_IDENTIFIER)
from LOGS_HISTORY
where MODE__ = 'Standby'
请查看我的代码片段并建议我如何解决它?目前我有错误,因为我的代码中没有 group by
WHERE
在子句而不是子句中应用时间过滤器HAVING
。如果您在当前时刻(包括时间)前 1 个月开始想要它,那么:
SELECT 'Working Equipment' label,
count(*)
FROM LOGS_HISTORY
WHERE MODE__ = 'Working'
AND TIME_ >= add_months(sysdate, -1)
union all
SELECT 'Standby Equipment' label,
count(distinct TAG_IDENTIFIER)
FROM LOGS_HISTORY
WHERE MODE__ = 'Standby'
AND TIME_ >= add_months(sysdate, -1)
如果你想在当月得到它,那么:
SELECT 'Working Equipment' label,
count(*)
FROM LOGS_HISTORY
WHERE MODE__ = 'Working'
AND TIME_ >= TRUNC(sysdate, 'MM')
union all
SELECT 'Standby Equipment' label,
count(distinct TAG_IDENTIFIER)
FROM LOGS_HISTORY
WHERE MODE__ = 'Standby'
AND TIME_ >= TRUNC(sysdate, 'MM')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句