关于Sql查询的问题?特急!(25分)

  • 主题发起人 主题发起人 zgyingmu
  • 开始时间 开始时间
Z

zgyingmu

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个Access2000的stock,其中有字段No,Name,Sl,
我想用Sql语句实现形成一个表,把No字段相同的记录
的Sl字段相加得到一条记录。
即假设有以下记录:
No Name Sl
qq aa 20
qq aa 10
ww bb 40
ee cc 80
ee cc 10
形成的新表为
No Name Sl
qq aa 30
ww bb 40
ee cc 90
我执行了
select no,name,sum(s1) as s1 from stock
group by no
但系统提示:'Circular reference caused by alias sl in query definition's
Select list'。不知是何原因?我用的是Delphi5
 
select no,sum(s1) as s1 from stock
group by no
 
insert into YourNewTable select no,name,sum(s1) as s1 from stock group by no,name
 
如果select 中有sum(),那么除group by 后的字段外若要显示其它字段必须加max
select max(name) name,no,sum(s1) s1 from stock group by no
 
GROUP 语句不完整,必须列出所有的SELECT 中出现的字段(不包含SUM生成的)
你的GROUP语句应写成 GROUP BY NO,NAME
 
同意 LUS_LIU
 
按DJ的方法执行,系统提示‘Error Createing cursor handle'
 
select no,name,sum(s1) as s1 from stock
group by no,NAME
 
select no,name,sum(s1) as s1 from stock
group by no,NAME
 
这表是谁设计的?本身信息就不规范,No 和Name应该是一一对应的吧?这张
表里就应该只有No或Name。如果不一一对应,那么求和意义也不大。

不过,建议:
如果想只对No相同的求和,不考虑No和Name不一一对应的情况,可以用
select no, sum(sl) from stock group by no

而考虑No和Name都相同的才求和的话,可以用:
select no, name, sum(sl) from stock group by no, name
 
在SQL SERVER7中我可以用trigger实现,在Access2000中不知道有没有trigger这个概念?
 
改成我觉得他报的错好像是说" sum(s1) as s1" 出错了,后面的s1改个名字试试.
另外,就是group by 后面的要group 的字段没写完. 还要加上name .
 
insert into newstock
select no,name,sum(sl) sl1 from stock
where sl1 in (select DISTINCT sl from stock group by sl) group by sl
如果不好使我就不会了
 
多人接受答案了。
 

Similar threads

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