Bootstrap

将数据集中的相同项目合并

问题描述:一张表中有两个字段,一个是名称,一个是金额,假如名称相同,则合并,金额相加。

解法:

1、先建表

[sql]create table tablet
(
  name     VARCHAR2(40) not null,
  price    NUMBER(4) not null
)
create table tablew
(
  name     VARCHAR2(40) not null,
  price    NUMBER(4) not null
)[/sql]

2、建立两个数据集cds1、cds2,cds1记录原始数据,cds2记录合并后的数据:

[delphi]
begin
  cds1.Close;
  cds1.CommandText := ' select name, price from tablet ';
  cds1.Open;
  cds2.Close;
  cds2.CommandText := ' select name, price from tablew where 1=0 ';
  cds2.Open;
  cds1.First;
  while not cds1.Eof do
  begin
    cds2.First;
    if cds2.Locate('name',cds1.FieldByName('name').AsString,[] ) = false then
    begin
      cds2.Append;
      cds2.FieldByName('name').AsString := cds1.FieldByName('name').AsString;
      cds2.FieldByName('price').AsInteger := cds1.FieldByName('price').AsInteger;
      cds2.Post;
    end
    else begin
      cds2.Edit;
      cds2.FieldByName('price').AsInteger := cds2.FieldByName('price').AsInteger + cds1.FieldByName('price').AsInteger;
      cds2.Post;
    end;
    cds1.Next;
  end;
end;
[/delphi]

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;