Bs为integer Xm为string Jg为Float
数据表如下:
Bs Xm Jg
1 计算1 120
1 计算2 300
2 计算3 500
2 计算4 500
1 合计1
2 合计2
现在我用如下语句,只能够计算出Bs为1的Jg的总和,
但有什么办法能把这个总和放入Bs为1的合计1这个记录的Jg字段中?
with Query2 do
begin
close;
sql.Clear;
sql.Add('SELECT SUM(Jg)as 合计 FROM TC WHERE Bs='+inttostr(1));
open;
end;//wiht
最终显示效果如下:
Bs Xm Jg
1 计算1 120
1 计算2 300
1 合计1 420
2 计算3 500
2 计算4 500
2 合计2 1000
请指教。
数据表如下:
Bs Xm Jg
1 计算1 120
1 计算2 300
2 计算3 500
2 计算4 500
1 合计1
2 合计2
现在我用如下语句,只能够计算出Bs为1的Jg的总和,
但有什么办法能把这个总和放入Bs为1的合计1这个记录的Jg字段中?
with Query2 do
begin
close;
sql.Clear;
sql.Add('SELECT SUM(Jg)as 合计 FROM TC WHERE Bs='+inttostr(1));
open;
end;//wiht
最终显示效果如下:
Bs Xm Jg
1 计算1 120
1 计算2 300
1 合计1 420
2 计算3 500
2 计算4 500
2 合计2 1000
请指教。
解决方案 »
- 昨晚在东莞惨遭飞抢, 运气好没被抢到, 散400分消灾(1)
- 一串口通讯程序,在2K中运行正常,而在XP中运行不太良好!(API函数支持问题?)
- 急需各种电脑图标,收到马上给分。
- 回车的key是多少啊
- clientdataset在applyupdates后,占用的内存怎么释放
- 求数据表中特定时间段的数据和.怎么做.在线等
- 怎樣用Delphi中提供的Finddialog和ReplaceDialog對話框?
- TClientDataSet.OnReconcileError客户端捕捉错误问题
- 如何让dbgrid某一列显示效果如同dbgrid最左边有小箭头那一列的外观,即象button?
- delphi 怎样获取DLL接口中的事件
- 通过剪切板 转excel 汉字出现 乱码
- 关于LISTVIEW中记录颜色改变,在线等,急~!!!!!
1 计算1 120
1 计算2 300
1 合计1 420
2 计算3 500
2 计算4 500
2 合计2 1000
想这个样子??? 如果你bs里面的值多的话,就必须用存储过程加游标了
给个思路:
首先得到所以bs值(去掉重复)
用游标循环每个bs值
针对每个值再select *from table
union
select 1,2,sum(jg) from table where bs = 循环的bs值
//最好把这个结果放到一个临时表中
循环结束后把所有临时表union起来就是结果了
select Bs,Xm,Jg from tc
union
select Bs,'合计'+ convert(varchar(10),bs) as xm ,sum(jg ) as jg from tc
group by bs
你可以在外面再select一次,然后按照bs 排下序就可以得到你期望的结果了。
begin
sql.add('select Bs,Xm,Jg from tc');
sql.add('union');
sql.add('select Bs,'合计'+ convert(varchar(10),bs) as xm ,sum(jg ) as jg from tc group by bs');
end;//with
我这样运行出错呀,是不是哪里写错了,请指教!
sql.add('select Bs,''合计''+ convert(varchar(10),bs) as xm ,sum(jg ) as jg from tc group by bs');
sql.add('select Bs,''合计''+ convert(varchar(10),bs) as xm ,sum(jg ) as jg from tc group by bs');
运行出错,出错信息如下:
DBISAM Engine Error # 11949 SQL parsing error - Expected FROM but instead found ( in SELECT SQL statement at line 1, column 26.
sql.Add('select * from tc
union
select Bs,''合计''+ convert(varchar(10),bs) as xm ,sum(jg) as jg
from tc group by bs');
open;
这么写试一下
from (
select Bs,Xm,Jg,1 as ordertype from tc
union all
select Bs,'合计'+ convert(varchar(10),bs) as xm ,sum(jg) as jg,2 as ordertype from tc
group by bs
)
order by bs,ordertype,Xm
sql.Clear;
sql.Add('select * from tc
union
select Bs,''合计''+ convert(varchar(10),bs) as xm ,sum(jg) as jg
from tc group by bs');
open;
运行出错,出错信息如下:
DBISAM Engine Error # 11949 SQL parsing error - Expected FROM but instead found ( in SELECT SQL statement at line 1, column 49.