有表1:A
字段名 LAOBAONO,LAOBAONAME
1 毛巾
2 手套
表2:B
字段名 ZHIGONGNO,LAOBAONO,LINGYONGNUM
1 1 3
1 2 4
2 1 5
2 2 5
要求输出报表C:
LAOBAONO,LINGYONGNUM
1 8
2 9编写语句如下
close;
sql.Clear;
sql.Add('select a.laobaono ,sum(b.lingyongnum)');
sql.add(' from a,b');
sql.add('where a.laobaono=b.laobaono');
sql.add('group by a.laobaono');
open;
可是输出结果如下:
laobaono,lingyongnum
1 8
1 8
请问语句哪里不对,该如何改
字段名 LAOBAONO,LAOBAONAME
1 毛巾
2 手套
表2:B
字段名 ZHIGONGNO,LAOBAONO,LINGYONGNUM
1 1 3
1 2 4
2 1 5
2 2 5
要求输出报表C:
LAOBAONO,LINGYONGNUM
1 8
2 9编写语句如下
close;
sql.Clear;
sql.Add('select a.laobaono ,sum(b.lingyongnum)');
sql.add(' from a,b');
sql.add('where a.laobaono=b.laobaono');
sql.add('group by a.laobaono');
open;
可是输出结果如下:
laobaono,lingyongnum
1 8
1 8
请问语句哪里不对,该如何改
如果设成了字符形式,考虑空格影响!建议改为:
close;
sql.Clear;
sql.Add('select a.laobaono ,sum(b.lingyongnum)');
sql.add(' from a,b');
sql.add('where rtrim(a.laobaono)=rtrim(b.laobaono)');//避免空格影响!
sql.add('group by a.laobaono');
open;
直接
sql.Add('select laobaono ,sum(lingyongnum)');
sql.add(' from b');
sql.add('group by laobaono');
不行吗?
这样可以,
不需要a,b关联当你要得到:
LAOBAONAME,LINGYONGNUM
手套 8
毛巾 9
就这样写:
SQL.Add('select a.laobaoname, sum(b.lingyongnum) from a, b where a.laobaono = b.laobaono group by laobaoname')