我数据库中有好几张表,表的列数不一样。每个表都有一个日期列。
现在我要做的一个功能是给定一个日期,点击一个按钮,就会从这几张表中搜索出该日期下的所有条目放到一个DBgrid中。
请问怎么做啊?

解决方案 »

  1.   

    在你的dbgrid数据源的sql中照下面格式写就行了select a.字段1,b.字段2 from 表1 a,表2 b where a.日期=b.日期 and a.日期='yyyymmdd'
      

  2.   

    可用sql語句進行關聯(級聯),日期作為where的條件;點擊按鈕時執行sql語句進行查詢...
      

  3.   

    问题是列数和列类型是否相同,如果相同可以UNION ALL
      

  4.   

    eg1,sql中:select a.ACCOUNT_ID,a.FULL_NAME,b.CB,b.BM,b.KB,b.XB,b.BC from CQ_JB a 
    left join Res_Hrd_Temp b on a.ACCOUNT_ID=b.Account_Id 
    where a.JBRQ='2010-09-07'eg2,delphi中:
      if (Trim(cxDateEdit1.Text)='') then
      begin
        MessageDlg('操作提示:請檢查,查詢的條件不能為空!',mtWarning,[mbOK],0);
        Exit;
      end;
      if (Trim(cxDateEdit1.Text)='') then
      begin
        qry_search.Close;
        qry_search.SQL.Clear;
        qry_search.SQL.Add( ' select a.ACCOUNT_ID,a.FULL_NAME,b.CB,b.BM,b.KB,b.XB,b.BC from CQ_JB a left join Res_Hrd_Temp b on a.ACCOUNT_ID=b.Account_Id where a.JBRQ='''+ FormatDateTime('yyyy/mm/dd',cxDateEdit1.Date)+''' ' );
        qry_search.Open;
        if qry_search.RecordCount=0 then
        begin
          MessageDlg('查詢提示:沒有找到符合查詢條件的記錄!',mtWarning,[mbOK],0);
          Exit;
        end;
      end;
      

  5.   


    这样最后显示是一个横行里面包含各个表的字段。
    2010-9-1 a.字段1 b.字段2
    我要显示的是各个表中的某日期下条目都占一行。
    2010-9-1 a.字段1 a.字段2 a.字段3 
    2010-9-1 b.字段1 b.字段2 b.字段3 b.字段4 b.字段5
      

  6.   

    select 日期,字段1,字段2,字段3,字段4,字段5
    from (select 日期,字段1,字段2,字段3,null as 字段4,null as 字段5 from a
    union all
    select 日期,字段1,字段2,字段3,字段4,字段5 from b from b) as temptable
    where 日期='yyyy-mm-dd'注意,几个表的字段1、字段2等需要类型一致,例如都是int或者char,不然要自行转换