我的query
select a.*,b.区间次数
from a
left join (select bm,count(no) as 区间次数  from a where rq>条件1 and rq<条件2)b
on  a.bm=b.bmcxgrid中 怎样利用日期字段进行查询??

解决方案 »

  1.   

    就在sql语句中加where不可以吗?
      

  2.   

    .....on  a.bm=b.bm and a.日期 > ....
      

  3.   

    我想实现
    1.当在cxgrid自带的查询中没有rq字段时,设置个默认值,比如大于2000-01-01 小于今天
    2.当在cxgrid自带的查询中有rq字段时,用查询中设置的条件
    3.对其他的条件用默认值
      

  4.   

    数据库a中 举例
    bm     rq             xm         no
    0001  2001-01-01      xxxx       1
    0002  2001-01-01      bbbb       2
    0001  2005-05-05      xxxx       3最终显示结果
    bm    总次数    区间次数
    0001  2        2
    0002  1        1
    当在cxgrid表格中使用过滤生成器 设置条件为rq>'2004-01-01'时
    能够显示
    bm     总次数   区间次数
    0001   2       1
    0002   0       0
      

  5.   

    上表错了,有条件时显示当在cxgrid表格中使用过滤生成器 设置条件为rq>'2004-01-01'时 
    能够显示 
    bm    总次数  区间次数 
    0001  2      1 
    0002  1     0 总次数已算出,在a表中 也就是说条件查询时,只有区间次数会变
      

  6.   

    存储过程也可以,关键是界面上没有其他的时间段选择框,所有的时间选择都要在 AFilterText中
      

  7.   

    SELECT c.总次数, b.bm,b.区间次数
    FROM (SELECT bm, COUNT(*) AS 区间次数
            FROM a
            WHERE (rq < '2004-1-1')
            GROUP BY bm) b INNER JOIN
              (SELECT bm, COUNT(*) AS 总次数
             FROM a
             GROUP BY bm) c ON c.bm = b.bm
      

  8.   

    sql语句没错,我是说怎么通过在cxgrid中设置时间段,应用到sql的条件中
      

  9.   

    拿了cxgrid里的过滤条件出来,拼合在SQL语句后面就可以啦.
      

  10.   

    参考ExpressQuantumGrid 5\Delphi 7\Demos\FilterByCodeDemo这个例子吧,设置过滤条件即可
    procedure TFilterByCodeDemoMainForm.SetFilter(const AFiltering: TUserFiltering);
    var
      ADate: TDate;
      V: Variant;
    begin
      FLock := True;
      try
        with tvCustomers.DataController.Filter.Root do
        begin
          Clear;
          case AFiltering of
            ufNone:
              Clear;
            ufCustom:
              MessageDlg('Please click the filter arrow in a corresponding column header',
                mtInformation, [mbOK], 0);
            ufSimple:
              AddItem(tvCustomersCOPIES, foGreater, cCopiesCount, '3');
            ufLike:
              AddItem(tvCustomersCOMPANYNAME, foLike, '%&%', '"&"');
            ufTwoField:
               begin
                 BoolOperatorKind := fboAnd;
                 AddItem(tvCustomersCUSTOMER, foEqual, True, 'True');
                 AddItem(tvCustomersPRODUCTID, foEqual, cExpressQuantumGridID,
                   'ExpressQuantumGrid');
               end;
            ufBetween:
              begin
                BoolOperatorKind := fboAnd;
                ADate := GetDate(dtFirstOfYear);
                AddItem(tvCustomersPURCHASEDATE, foGreaterEqual, ADate, DateToStr(ADate));
                ADate := GetDate(dtLastOfYear);
                AddItem( tvCustomersPURCHASEDATE, foLessEqual, ADate, DateToStr(ADate));
              end;
            ufUserFilter:
              SetOnlyGridsFilter(tvCustomers.DataController.Filter.Root);
            ufGroup:
              begin
                BoolOperatorKind := fboAnd;
                SetOnlyGridsFilter(AddItemList(fboOr));
                V := VarArrayCreate([0,1], varInteger);
                V[0] := cVisaID;
                V[1] := cAmExID;
                AddItem( tvCustomersPAYMENTTYPE, foInList, V,
                  'Visa, American Express');
              end;
            ufList:
              begin
                BoolOperatorKind := fboOr;
                AddItem(tvCustomersPAYMENTTYPE, foEqual, cCashID, 'Cash');
                AddItem( tvCustomersPAYMENTTYPE, foEqual, cAmExID, 'American Express');
               end;
          end;
        end;
        tvCustomers.DataController.Filter.Active := True;
      finally
        FLock := False;
      end;
    end;
      

  11.   

    select a.*,p.qjje,p.qjcs,p.qjgf,p.qjlf
    from k_view a
    left outer join (select khdm,sum(xse) as qjje,sum(gf) as qjgf,sum(lf) as qjlf,count(ro_no) as qjcs
    from ro  where wxjd='已结' and jd_date>=:dd1 AND jd_date<=:dd2 group by khdm) p on a.khdm=p.khdm
    where a. jd_date>=:dd1 AND a.jd_date<=:dd2 这是源代码大家 帮忙看怎么弄,优化点最好
      

  12.   

    LZ的SQL语句还好     3楼的方法试了吗?    应该没事的~
      

  13.   

    我的query 
    select a.*,b.区间次数 
    from a 
    left join (select bm,count(no) as 区间次数  from a where rq>(cxgrid中自带的时间过滤条件1) and rq <>(cxgrid中自带的时间过滤条件2))b 
    on  a.bm=b.bm 
    谁能帮解决下结贴给分