sql的问题(20分)

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

handsome1234

Unregistered / Unconfirmed
GUEST, unregistred user!
这句error:试图执行的查询中不好含作为合计函数一部分的特定表达式a22
select input.a1 as a11,input.a2 as a22,input.a3 as a33
from input where input.a3 <'20020801' group by a1 //当我去掉
group by a1 时就正确了,

input表中只有a1,a2,a3,只有a2是数字型,其他均为字符型,
数据库为access
请大家解答解答

 
select input.a1 as a11,input.a2 as a22,input.a3 as a33
from input where input.a3 <'20020801' group by a1,a2,a3
这样写就正确了
 
那当然啦,Group by 一般用在对表中数据的汇总,最大、最小等操作。
这里不明白你的意图,若按A1分组,求各组中的A2汇总值,可这样:
  select a1,sum(a2) as a2 from input group by a1
若想求不重复记录,可这样:
  select Distinct * from input
good lucky ![:)]
 
请问cb422,
group by a1,a2,a3
group by a1 的区别啊
 
请问cb422,
group by a1,a2,a3
group by a1 的区别啊

group by 是语法问题
 
group by是对字段进行分组,为了对这个组进行统计,不如:SUM,COUNT,等。
若用了group by,select 后面出现的字段要么是group by后的字段名,要么是用聚合函数
如sum,count等处理过的字段。
你的语句这样写就不会错了:
select input.a1 as a11,sum(input.a2) as a22,sum(input.a3) as a33
from input where input.a3 <'20020801' group by a1
 
to handsome1234,
group by是对字段进行分组,且select后面的字段必须都出现在group by后,或者用
聚合函数处理。
group by a1,a2,a3是首先对a1分组,其次对a2分组,最后对a3分组。
 
看书去。
 
多人接受答案了。
 

Similar threads

回复
0
查看
921
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
987
SUNSTONE的Delphi笔记
S
S
回复
0
查看
805
SUNSTONE的Delphi笔记
S
顶部