执行查询时的问题!特急!!!Sos(35分)

  • 主题发起人 主题发起人 hzyingmu
  • 开始时间 开始时间
H

hzyingmu

Unregistered / Unconfirmed
GUEST, unregistred user!
在Query1中执行了以下程序:
'insert into jbzl(hdlgddm,hdlzqlb,hdlcysl,hdlgdxm) Select
hdlgddm,hdlzqlb,sum(hdlcysl),hdlgdxm from stocktemp where
hdlgddm<>'' group by hdlgddm,order by hdlgddm'
系统提示“duplicate values in the index,primary key or relationship
.change the date in the field......”
我设置hdlgddm字段为主键,但从以上Select语句的含义看,应该不会有
duplicate value in the primary key,不知是何原因,因为我用的是Access2000
的数据库,当在jbzl表中添加一个由Access自动生成的主关键字'ID'(自动编号)
则不会有以上错误提示,但在查询执行结束后,又提示‘create cursor handle error’;
以上问题如何解决(我不想有Access生成的主关键字ID)?请高手赐教!
谢谢!我用的是Delphi5
 
1.jbzl与stocktemp是否有相同字段,如果有,请在字段前加前缀,如jdzl.

2.试一下:

Select
hdlgddm,hdlzqlb,sum(hdlcysl),hdlgdxm from stocktemp where
hdlgddm<>'' group by hdlgddm,order by hdlgddm
是否正确?
 
不要用Open,用excute
 
>>'insert into jbzl(hdlgddm,hdlzqlb,hdlcysl,hdlgdxm) Select
>>hdlgddm,hdlzqlb,sum(hdlcysl),hdlgdxm from stocktemp where
>>hdlgddm<>'' group by hdlgddm,order by hdlgddm'

问题应该出在 sum 上吧,
sum(hdlcysl)是一条记录,而hdlgddm,hdlzqlb,hdlgdxm
均为记录集,两者不对应。
但系统怎么会出现那种提示我就不明白了。
 
我想问题可能出在group by这个部分!
 
日期字段有没有和关键字段相冲突
 
我想问题可能出在Group by 部分,因为sum(hdlcysl)是合计,这可要对选择的所有字段分组.
试试以下语句:

insert into jbzl(hdlgddm,hdlzqlb,hdlcysl,hdlgdxm)
Select hdlgddm,hdlzqlb,sum(hdlcysl),hdlgdxm
from stocktemp where hdlgddm<>''
group by hdlgddm,hdlzqlb,hdlgdxm order by hdlgddm

 
应改为
...
hdlgddm<>'' group by hdlgddm,,hdlzqlb,hdlgdxm order by hdlgddm'
...
 
多人接受答案了。
 
后退
顶部