SOS!关于Group By语句的疑惑?特急!我给200分!(200分)

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

zgyingmu

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现的功能是把stocktemp数据表中 'hdlgddm'字段内容相同的记录的'hdlcysl'字段
想加,即把'hdlgddm'相同的记录合并成一条记录,而把'hdlcysl'的内容想加,并插入到
jbzl表中.
我在Query1的Sql属性中写入以下代码:
insert into jbzl(hdlgddm,hdlzqlb,hdlcysl,hdlgdxm)
Select stocktemp.hdlgddm,stocktemp.hdlzqlb,sum(stocktemp.hdlcysl),stocktemp.hdlgdxm
from stocktemp
where stocktemp.hdlgddm<>''
group by stocktemp.hdlgddm
order by stocktemp.hdlgddm
系统提示‘you tried to execute a query that does not include the
specified expression hdlzqlb’
:(以上语句在foxpro2.5中能实现.)

而改成以下代码则Ok,即Group By 语句中添加若干字段名,但如此形成的
结果又不符合要求。究竟该怎么办?请各位高手赐教!
insert into jbzl(hdlgddm,hdlzqlb,hdlcysl,hdlgdxm)
Select stocktemp.hdlgddm,stocktemp.hdlzqlb,sum(stocktemp.hdlcysl),stocktemp.hdlgdxm
from stocktemp
where stocktemp.hdlgddm<>''
group by stocktemp.hdlgddm,stocktemp.hdlzqlb,stocktemp.hdlgdxm
order by stocktemp.hdlgddm
我用的是Delphi5+Access2000,谢谢!
在网易社区中没有人能帮我解决这个问题,这里是我最后的希望了!
 
你程序的错误在于hdlgddm相同的记录中有不同的hdlzqlb,hdlgdxm值存在,我不知道怎样才
是你的要求,如果要汇总hdlgddm相同的记录的hdlcysl字段值,为什么还得写入hdlzqlb,
hdlgdxm字段值。既而hdlgddm相同的记录中hdlzqlb,hdlgdxm字段的值有不一样的值,那么
用那一个值写入表中。不明白下面的程序有什么不符合你的要求??
 
同意hbzh1014的看法。
我想你是设计思路有问题,
1。Sql求和时,group by 中的字段必须是select 中除去sum字段的所有字段
2。hdlgddm相同的记录中hdlzqlb,hdlgdxm字段有不一样的值时,到底想将哪一个
值写入表中?
还是好好考虑一下你到底想在表中插入什么结果好了!
 
我以前也有相同的疑问,可是解决了。
<a href='http://www.delphibbs.com/delphibbs/DispQ.asp?LID=341534'>http://www.delphibbs.com/delphibbs/DispQ.asp?LID=341534</a>
 
同意zgyingmu的看法啊
 
请写一些模拟数据,就ok了
 
如果stocktemp.hdlzqlb时随便一个值,
你可以select ...,max(stocktemp.hdlzqlb),......
那group by就不必包含stocktemp.hdlzqlb了
 
zgyingmu:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
请认真阅读大富翁论坛规则说明 http://www.delphibbs.com/delphibbs/rules.htm
 
同意liujingnan和pipi的看法!
 
多人接受答案了。
 
后退
顶部