with adoquery3 do
begin
close;
sql.Clear;
sql.Text:='select * from dsum';
execsql;
active:=true;
first;
end;
with adoquery4 do
begin
close;
sql.Clear;
sql.Text:='select * from mcwtemp';
execsql;
active:=true;
first;
end;
with adoquery2 do
begin
close;
sql.Clear;
sql.Text:='select * from mout where mth like ''%'+trim(yf)+'%''';
execsql;
active:=true;
first;
showmessage(sql.Text);
end;
rsr:=0;
rzc:=0;
zzc:=0;
yye:=0;
lsr:=0;
sou:=0;try
while (not adoquery2.Eof) or (not adoquery3.Eof) do
begin
     if not adoquery3.Eof then
          while not adoquery3.Eof do
          begin
            if copy(trim(adoquery3.fieldbyname('date').AsString),7,1)='-' then
             if copy(trim(adoquery3.fieldbyname('date').AsString),6,1)=trim(yf) then
             begin
             da:=adoquery3.fieldbyname('date').AsString;
              rsr:=adoquery3.fieldbyname('lsmn').AsFloat;
             rzc:=rzc+rsr;
                if not adoquery2.eof then
                    begin
                    zc:=adoquery2.fieldbyname('mouna').AsString;
                    zzc:=adoquery2.fieldbyname('moume').AsFloat;
                    op:=adoquery2.fieldbyname('oper').AsString;
                    sou:=sou+zzc;
                    end
                   else
                    begin
                    zc:='';
                    zzc:=0;
                    op:='';
                    sou:=sou+zzc;
                    end;
             end
             else
             if copy(trim(adoquery3.fieldbyname('date').AsString),6,2)=trim(yf) then
             begin//7
             da:=adoquery3.fieldbyname('date').AsString;
             rsr:=adoquery3.fieldbyname('lsmn').AsFloat;
             rzc:=rzc+rsr;
                 if not adoquery2.eof then
                  begin//8
                  zc:=adoquery2.fieldbyname('mouna').AsString;
                  zzc:=adoquery2.fieldbyname('moume').AsFloat;
                  op:=adoquery2.fieldbyname('oper').AsString;
                  sou:=sou+zzc;
                        
                  end
                 else
                  begin
                  zc:='';
                  zzc:=0;
                  op:='';
                  sou:=sou+zzc;
                  end;
             end;
           adoquery4.InsertRecord([da,rsr,zc,zzc,op,rzc,sou,rzc-sou]);
                adoquery3.Next;
                adoquery2.Next;
            end
     else
           begin
           while not adoquery2.Eof do
                begin
                 zc:=adoquery2.fieldbyname('mouna').AsString;
                 zzc:=adoquery2.fieldbyname('moume').AsFloat;
                 op:=adoquery2.fieldbyname('oper').AsString;
                 sou:=sou+zzc;
                 da:='';
                 rsr:=0;
                 rzc:=rzc+rsr;                
                 adoquery4.InsertRecord([da,rsr,zc,zzc,op,rzc,sou,rzc-sou]);
 adoquery2.Next;
                end;
           end;
end