我目前正在尝试计算每个郊区的交付时间晚于一个月的要求以及他们迟到的平均时间。ORA-00904:“TOTAL_ORDERS”:无效标识符
我已经完成了这个目前为止没有参数查询用户输入他们希望看到的月份。
SELECT s.suburbname,
Count(*) AS total_orders ,
("ORDER".ACTUALTIMEDELIVERED - "ORDER".CUSTREQTIME)/total_orders AS latetime
FROM "ORDER"
left join restaurant r
ON "ORDER".restaurantid = r.restaurantid
left join suburb s
ON r.suburbid = s.suburbid
WHERE "ORDER".deliveredflag = 'X'
AND "ORDER".ACTUALTIMEDELIVERED > "ORDER".CUSTREQTIME
GROUP BY s.suburbname
ORDER BY total_orders, latetime;
但是它给我一个ORA-00904:“TOTAL_ORDERS”:无效的标识符。
这是我的群体条款吗?
更新1我已经设法解决了,谢谢大家!但是现在我有一个不同的问题。我似乎无法总结INTERVAL DAY TO SECOND数据类型,因为它会抛出错误:ORA-00932:不一致的数据类型:预计NUMBER将INTERVAL DAY移动到第二位。
有没有总结所有的时间差异和平均出来?
更新2
我已经成功使用EXTRACT函数来提取出来的小时和分钟,并总结所有的人一起反对数来解决我的所有问题。
SELECT
s.suburbname,
Count(*) AS total_orders,
SUM(60*(Extract(hour from "ORDER".ACTUALTIMEDELIVERED) - Extract(hour from "ORDER".Custreqtime)) + Extract(minute from "ORDER".ACTUALTIMEDELIVERED) - Extract(minute from "ORDER".Custreqtime))as amt
FROM "ORDER"
left join restaurant r
ON "ORDER".restaurantid = r.restaurantid
left join suburb s
ON r.suburbid = s.suburbid
WHERE
"ORDER".deliveredflag = 'X'
AND
"ORDER".ACTUALTIMEDELIVERED > "ORDER".CUSTREQTIME
GROUP BY s.suburbname
ORDER BY s.suburbname desc;
如果你有一个新的问题,你应该工作一点,自己找到答案,然后问一个新的问题。这不是它的工作原理。您没有自己的帖子来获得对Oracle语法的支持!你去买书,先学习。 –
对不起。我已经设法解决了更新中突出显示的问题。将解决方案发布给其他人。它可以帮助他们 – ABB25