在Access中有两个表(1入库表:Yprk 字段有ID 商品大类,商品名称,商品规格,商品编码,进货日期,进货数量)( 2出库表:YpCk 字段有 ID 商品大类,商品名称,商品规格,商品编码,出货日期,出货数量)我想按年查询进出货情况
我做的左连接查询入库表中的库存如下语句(如果商品编码和商品规格相同则为同一种商品)procedure TFrmKcSpFind.BtnFindClick(Sender: TObject);
var
  Sqls,S1,S2:string;
begin
  S1:='(select 商品大类,商品名称,商品规格,商品编码,进货日期,sum(进货数量)as 累计进货 from YpRk group by 商品大类,商品名称,商品规格,商品编码,进货日期) t1 ';  S2:='(select 商品大类,商品名称,商品规格,商品编码,sum(出货数量)as 累计出货 from Ypck group by 商品大类,商品名称,商品规格,商品编码) t2 ';  Sqls:='select t1.商品大类,t1.商品名称,t1.商品规格,t1.商品编码,t2.累计出货,t1.累计进货,(t1.累计进货-t2.累计出货)as 当前库存 from '+S1+' left join '+s2+ 'on (t2.商品规格=t1.商品规格)and(t2.商品编码=t1.商品编码) ';   with Aq_Find do
  begin
     close;
     SQL.Clear;
     SQL.Add(Sqls);
     SQL.Add('where (Year(t1.进货日期)=:Y1)');
     Parameters.ParamByName('Y1').Value:= Year2.Text;
     Open;
  end;
end;
为什么这样查询商品不能按年分组呢,而且查询还有错误,而如果把 SQL.Add('where (Year(t1.进货日期)=:Y1)'); Parameters.ParamByName('Y1').Value:= Year2.Text;这两行去掉,也就是没有时间限制就能进行分组呢,哪位 大侠帮帮忙呀。