提示未找到预期FROM关键字

chinaseven 2004-08-12 10:31:19

下面语句将两个TO_DATE()改为'20040812',在SQL2000下运行没有问题

数据库改为oracle后,提示未找到预期FROM关键字


SELECT *,(SELECT SUM(B.amount)
FROM (SELECT CONVERT(varchar(10), chargetime, 120) AS dt, SUM(amount)
AS amount
FROM cquancun
GROUP BY CONVERT(varchar(10), chargetime, 120)) B
WHERE datediff(dd, B.dt, A.rq) >= 0) AS total
FROM (SELECT CONVERT(varchar(10), chargetime, 120) AS rq, SUM(C.amount)
AS chargeamount
FROM cquancun C
where chargetime>TO_DATE('20040212','YYYYMMDDHH24MISS') and
chargetime<TO_DATE('20040812','YYYYMMDDHH24MISS')
GROUP BY CONVERT(varchar(10), chargetime, 120)) A
order by A.rq;

...全文
187 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ern 2004-08-12
  • 打赏
  • 举报
回复
oracle里直接比较日期就可以了
drabit 2004-08-12
  • 打赏
  • 举报
回复
没有
chinaseven 2004-08-12
  • 打赏
  • 举报
回复
oracle 里 datediff函数有没有?
ern 2004-08-12
  • 打赏
  • 举报
回复
没有convert的,那是sybase的吧
其次,对于*,最好放在最后,不然是会出些莫名其妙的错误,或者你手动把字段都列出来
drabit 2004-08-12
  • 打赏
  • 举报
回复
从没听说过oracle有convert函数
chinaseven 2004-08-12
  • 打赏
  • 举报
回复
高手:

提示 缺少表达式
txlicenhe 2004-08-12
  • 打赏
  • 举报
回复
SELECT a.*,(SELECT SUM(B.amount)
............




SELECT a.*,(SELECT SUM(B.amount)
FROM (SELECT CONVERT(varchar(10), chargetime, 120) AS dt, SUM(amount)
AS amount
FROM cquancun
GROUP BY CONVERT(varchar(10), chargetime, 120)) B
WHERE datediff(dd, B.dt, A.rq) >= 0) AS total
FROM (SELECT CONVERT(varchar(10), chargetime, 120) AS rq, SUM(C.amount)
AS chargeamount
FROM cquancun C
where chargetime>TO_DATE('20040212','YYYYMMDDHH24MISS') and
chargetime<TO_DATE('20040812','YYYYMMDDHH24MISS')
GROUP BY CONVERT(varchar(10), chargetime, 120)) A
order by A.rq;
chinaseven 2004-08-12
  • 打赏
  • 举报
回复
问题解决,谢谢各位,结账

SELECT A.rq,A.chargeamount,(SELECT SUM(B.amount)
FROM (SELECT to_char(chargetime,'yyyymmdd') AS dt, SUM(amount)
AS amount
FROM cquancun
GROUP BY to_char(chargetime,'yyyymmdd')) B
WHERE to_number(A.rq)-to_number(B.dt) >= 0) AS total
FROM (SELECT to_char(chargetime,'yyyymmdd') AS rq, SUM(C.amount)
AS chargeamount
FROM cquancun C
where chargetime>TO_DATE('20040212','YYYYMMDDHH24MISS') and chargetime<TO_DATE('20040812','YYYYMMDDHH24MISS')
GROUP BY to_char(chargetime,'yyyymmdd')) A
order by A.rq;
hzwm 2004-08-12
  • 打赏
  • 举报
回复
select a.*, 字段
这样的做法容易出问题,最好是写成字段列表的形式,查询的速度也会很快。

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧