一、需求场景:

通过查询出两个数据集后再根据条件合并

select M1.*,M2.* from M1 left join M2 ON M2.TA001 = M1.TA001 AND M2.TA002=M1.TA002

二、通过FireDac 强大的TFDLocalSQL控件

  try
    with dmMain do
    begin
      FDQueryD.Close;
      FDQueryD.open;
      FDMemTableD.Data := FDQueryD.Data;
      FDQueryD.Close;
      // FDQueryD.Active := False;

      FDQueryM.Close;
      FDQueryM.open;
      FDMemTableM.Data := FDQueryM.Data;
      FDQueryM.Close;
      try
        LocalSQL.DataSets.Add(FDMemTableM, '', 'M1');
        LocalSQL.DataSets.Add(FDMemTableD, '', 'M2');
        LocalSQL.Active := True; // 需激活
        LocalQuery.Close;
        LocalQuery.open
          ('select M1.*,M2.* from M1 left join M2 ON M2.TA001 = M1.TA001 AND M2.TA002=M1.TA002 ');

        FDMemTableQuery.Close;
        FDMemTableQuery.Data := LocalQuery.Data;
        FDMemTableQuery.Active;

      finally
        LocalSQL.DataSets.Clear;
      end;

    end;
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;

 

posted on 2021-03-13 10:43  redhat588  阅读(336)  评论(0编辑  收藏  举报