试试把表结构改一下,再用connect by 和start with.
解决方案 »
- 有问题的sql存储过程,高手来帮看下!谢谢
- delphi 自带模板的问题
- 用movefile移动文件时,如果目标文件存在时,能否实现替换移动?
- 求思路,DELPHI倉位圖的創建,根據不同的值顯示不同顏色
- 就一个cell编辑器源代码 就是类似与execl一样 功能一般就行
- 如何限制程序只运行一个实例?
- delphi 2009中使用DBX时,双击SQLConnection控件怎么不好用啊?哪位大侠熟悉DBX??
- 好久没来了,没分散。露个脸。
- 我下的《delphi 5开发人员指南》为什么打开时会这样?
- 用Delphi5的ADO,客户端需带些什么?
- delphi中,如何检查内存泄漏,用什么方法或什么工具!
- 无分来问一个非专业的问题。
加一个字段slave_id references tablename,
select sum(value),level from tablename
connect by prior id=slave_id start with id=1;
没有具体试过,不知道好不好用...(这是Oracle的)
sorry for that I can not help you! :.(
一 的下级 1 2 3......
1的下级 1' 2' 3'
1'的下级 1'' 2'' 3'' ....
1''的下级 1''' 2''' 3'''
等等
输入:
一
1
1'
1'' 2
2'' 3
3''
1''' 2
2''' 3
3''' 4
2'
1'' 1
2'' 3
3' 3
2
1' 3
2' 4
3 2输出:
一 30(即下面三个子级别的sum,21+7+2)
1 21(14+4+3)
1' 14(即下面三个子级别的sum,2+3+5)
1'' 2 2(未经过sum)
2'' 3 3(未经过sum)
3'' 9(即下面三个子级别的sum,2+3+4)
1''' 2
2''' 3
3''' 4
2' 4(即下面两个子级别的sum,1+3)
1'' 1
2'' 3
3' 3 3(未经过sum)
2 7(即下面两个子级别的sum,3+4)
1' 3
2' 4
3 2 2(未经过sum)
一个成本核算程序要这么做
目的不但要统计整机成本,还要统计部件成本(即下面的各个子级别)
select id,sum(value) as 价格 from 表 where id in( select id from 表 where id like 可输入的id号+'%')
我很菜的,只能写这样了!
或者选择编程这条路吧,用sql恐怕比较难
var
I: Integer;
begin
Result := 0;
for I := 1 to Length(mStr) do
if mStr[I] = mChar then
Inc(Result);
end; { CharCount }procedure TForm1.Button1Click(Sender: TObject);
var
SumList: array[-1..4] of Real;
I, J: Integer;
begin
Table1.Last; //最后
J := -1;
FillChar(SumList, SizeOf(SumList), 0); //清零
while not Table1.Bof do begin
if Table1.FieldByName('id').AsString = '一' then
I := -1
else I := CharCount(Table1.FieldByName('id').AsString, '''');
if J > I then begin
Table1.Edit;
Table1['Value'] := SumList[J];
Table1.Post;
if I = J - 1 then SumList[J] := 0;
end;
SumList[I] := SumList[I] + Table1.FieldByName('Value').AsFloat;
J := I;
Table1.Prior;
end;
end;
测试通过!
不愧为高手!
确实也解决了我的问题,呵呵
伴水,你一个月拿多少钱,干脆到我的公司来吧,呵呵