sql问题(100分)

  • 主题发起人 主题发起人 jin_shu
  • 开始时间 开始时间
J

jin_shu

Unregistered / Unconfirmed
GUEST, unregistred user!
例:
表qqq.db 字段 a1,j1,j2,j3,j4,j5
以a1分组,j1,j2,j3,j4,j5分别按不同条件累计生成

select aaa.*,bbb.* from
(select a1,sum(je1) from qqq group by j1 where ...) aaa,
(select a1,sum(je3) from qqq group by j1 where ...) bbb,
where aaa.a1=bbb.a1
出错提示:invalid use of keyword
token:select
line number:2
为什么??[:(]
谢谢!!

 
select * from
(select a1,sum(je1) from qqq group by j1 where ...) aaa,
(select a1,sum(je3) from qqq group by j1 where ...) bbb,
where aaa.a1=bbb.a1
 
楼上的写法不对。
 
我在oracle下实验了一下,jin_shu的用法没错,不过没有使用Group By,会不会是Group By的问题?
 
是不是paradox下不行?
 
在oracle下 Group By需要放置在Where后面。
我实验了,放置在后面可以。
 
是用了Group by语句的问题
如果用了Group by,在select中好象只能出现Group by后的字段和聚合函数
 
select a1,(
select sum(je1) from qqq group by j1 where ...
) as j1,
(select sum(je3) from qqq group by j1 where ...) as je3
from qqq where ...
 
在 group by 后面 必须有a1字段名
select aaa.*,bbb.* from
(select a1,j1,sum(je1) from qqq where ...group by a1,j1 ) aaa,
(select a1,j1,sum(je3) from qqq where ...group by a1,j1 ) bbb,
where aaa.a1=bbb.a1
 
select a1,(
select sum(je1) from qqq group by j1 where ...
) as j1,
(select sum(je3) from qqq group by j1 where ...) as je3
from qqq where ...
不出错但是结果不对


 
应该这样写:
select aaa.*,bbb.* from
(select a1,sum(je1) from qqq group by a1 where ...) aaa,
(select a1,sum(je3) from qqq group by a1 where ...) bbb,
where aaa.a1=bbb.a1;

你的group by语句后面应该跟的是a1,而不是j1。
 
在paradox下是不是不能这样写?
有没paradox的SQL语法,
谢谢!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
1K
import
I
I
回复
0
查看
860
import
I
S
回复
0
查看
947
SUNSTONE的Delphi笔记
S
后退
顶部