关于sql,group by 请教各位???!!!
lyq 2001-09-29 04:40:48 有原料入库(ylrk)、原料出库(ylck)两个流水表,
现随时查询在(rq1,rq2)两时间段内所有原料(按编号
(ylbh)进行区分)的入库件数(rkjs)、出库件数(ckjs)、当前结存件数(jcjs),
显示在一表格内(要同时显示其他 关一些字段,如产地,供应商等),本想得到某种原料(多种)该时间段的入库、出库、及到该时间段的结存值,以编号分组显示,但显示结果是有许多编号相同的记录放在一起,不能最终达到汇总,请各位帮忙。
// query1.sql.add('select rq ,ylbh ,cd ,ph ,sum(yljs) ,sum(ckjs) ,0 jcjs from');
query1.sql.add('(select ylbh,rq,cd,ph,sum(yljs) yljs,0 ckjs,0 jcjs from ylrk where rq+3>=:rq1 and rq+2<=:rq2 group by ylbh,cd,rq,ph');
query1.sql.add('union all ');
query1.sql.add('select ylbh,rq,cd,ph,0 yljs,sum(ckjs) ckjs,0 jcjs from ylck where rq+3>=:rq3 and rq+2<=:rq4 group by ylbh,cd,rq,ph)');
query1.sql.add('union all ');
query1.sql.add('select ylrk.ylbh,ylrk.rq,ylrk.cd,ylrk.ph,0 yljs,0 ckjs,sum(yljs-ckjs) jcjs from ylrk,ylck where ylrk.rq<=:rq5 group by ylrk.ylbh,ylrk.cd,ylrk.rq,ylrk.ph');
query1.sql.add('as tmp group by ylbh,cd,rq,ph');
query1.Parameters.ParamByName('rq1').value:=rq1.date;
query1.Parameters.ParamByName('rq2').value:=rq2.date;
query1.Parameters.ParamByName('rq3').value:=rq1.date;
query1.Parameters.ParamByName('rq4').value:=rq2.date;
query1.Parameters.ParamByName('rq5').value:=rq2.date;
query1.Open;