sql group by

moonsheep12 2004-06-09 04:14:50
有这么一句group by 语句
sql.Add('select sortno as 大类代码,sortname as 大类名称,clientno as 客户代码,clientname as 客户名称,sum(quantity2) as 销售小数量,sum(salessum) as 销售金额,sum(tax) as 销售税金 from '+vw1+' group by sortno,sortname,clientno,clientname');
期中变量vw1是一个表名,在delphi中运行该语句后,总是报“不是group by 表达式”,而如果我不用变量表名的话,就可以正常运行,请问这是什么原因
...全文
104 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
抱朴守拙 2004-09-10
  • 打赏
  • 举报
回复
应该不是as的问题,还是跟踪一下代码,把运行时SQL.Text的内容贴出来。
yangmanyuan 2004-09-09
  • 打赏
  • 举报
回复
仔细看了你的语句,好像没有问题,而且不是as后字段名的问题,感觉应该是你的变量传进来的问题,或者权限,或者其他的问题,或者字段名的问题,但是你的语法肯定没有问题。
yangmanyuan 2004-09-09
  • 打赏
  • 举报
回复
select fieldname1 as fname1,fieldname2 as fname2,count(*) group by fieldname1,fieldname2 having count(*)>1

上面的语句里面,group by 必须fieldname1,fieldname2,只是分组函数的要求,前面的count(*)可要可不要,但是前面的字段有多少,后面group by 就必须有多少。having是分组条件过滤函数,可不要,只队group by 分组后的起过滤作用
抱朴守拙 2004-09-09
  • 打赏
  • 举报
回复
sql.Add('select sortno as 大类代码,sortname as 大类名称,clientno as 客户代码,clientname as 客户名称,sum(quantity2) as 销售小数量,sum(salessum) as 销售金额,sum(tax) as 销售税金 from '+vw1
+' group by 大类代码,大类名称,客户代码,客户名称');
^^^上面用了as,此处就得用as后的字段
抱朴守拙 2004-09-09
  • 打赏
  • 举报
回复
跟踪一下代码,把运行时SQL.Text的内容贴出来,三个引号的用发再这里不适用(只适用于字符串,整型的也不要用),[]一般在表名与SQL系统保留字重复时用。
ma369 2004-09-09
  • 打赏
  • 举报
回复
学习
scapple 2004-06-09
  • 打赏
  • 举报
回复
值得学习一下
moonsheep12 2004-06-09
  • 打赏
  • 举报
回复
marf_cn:请文[]改写在什么地方?
moonsheep12 2004-06-09
  • 打赏
  • 举报
回复
gechaosa:返回的结果是“表名无效”
marf_cn 2004-06-09
  • 打赏
  • 举报
回复
用3个引号了,最好再加个[]括起来
gechaosa 2004-06-09
  • 打赏
  • 举报
回复
sql.Add('select sortno as 大类代码,sortname as 大类名称,clientno as 客户代码,clientname as 客户名称,sum(quantity2) as 销售小数量,sum(salessum) as 销售金额,sum(tax) as 销售税金 from '+''''+vw1+''''+' group by sortno,sortname,clientno,clientname');

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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