例库:
商品名称 数量
a 8
a -1
b 10
a -2
a 5
b 12
b -5
b -3
a -3
其中,负数表示出库数量
现在要求统计出库明细表正常来说 只要数量< 0 即可表是出库
但是要求再加一列 即 剩余结存数量
那么 出库明细表就应该是 商品名称 出库数量 结存数量
a -1 7
a -2 5
b -5 17
b -3 14
a -3 7
商品名称 数量
a 8
a -1
b 10
a -2
a 5
b 12
b -5
b -3
a -3
其中,负数表示出库数量
现在要求统计出库明细表正常来说 只要数量< 0 即可表是出库
但是要求再加一列 即 剩余结存数量
那么 出库明细表就应该是 商品名称 出库数量 结存数量
a -1 7
a -2 5
b -5 17
b -3 14
a -3 7
解决方案 »
- 请问 我用delphi7 用rave5制作报表,我想在打印预览时 设置页码; 如有两页 第一页显示为:第1页,共2页;第二页显示为:第2页,共2页 这种形式 ?请指点!
- 按钮的modelresult属性不清楚,不知道怎么用!高手帮忙~
- 我的难题,您的小case.大家快来帮我这个新手的一个小忙,在此先行致谢了(关于DBComboBox)
- 改变图片(bmp /jpg)尺寸后保存!谁会!马上解决加20分!
- 文本显示的问题
- intraWeb的“后退” 和 升级
- DBGRID问题?
- delphi 如何连接SQLServer?
- 请问如何交换StringGrid中的指定行和列,是使用编码的方式不是设置属性!
- 一个关于进程的问题。
- 谁能发个 delphi7 的 帮助文档 中文版
- 求一困扰我五年的高难度算法
select a.商品名称,a.数量 as 出库数量 ,(select sum(数量) from 你的表
where ID <= a.ID and 商品名称=a.商品名称 ) as 结存数量 from 你的表 a where 数量<0如果你的表没有ID,那就建一个临时表或view
select identity(int,1,1) as ID,* into 新表 from 你的表然后在新表中用前面的SQL查询以上SQL在SQLSERVER中你的数据测试通过,结果就是你要的
from
(
select goodscode,case when quantity<=0 then quantity else 0 end outquantity,quantity
from temp_t
)
group by goodscode
SORRY 我还是没看太懂,我用的是BDE+query在没添加临时结余库存的情况下
我是这样写的
/////////////////////////////
query3.Close;
query3.RequestLive:=true;
query3.DatabaseName:='';
query3.SQL.Clear ;
query3.SQL.Text :='select date1,spmc,shuliang,jhdj,dj,jine from "liushuiw.DBF" where shuliang<0.00' ;
query3.Open ;
/////////////////////////////
这个就可以取到所有的出库记录了 但是,你上面的2个代码 我不知道该添加到哪里呢
SORRY 我还是没看太懂,我用的是BDE+query在没添加临时结余库存的情况下
我是这样写的
/////////////////////////////
query3.Close;
query3.RequestLive:=true;
query3.DatabaseName:='';
query3.SQL.Clear ;
query3.SQL.Text :='select date1,spmc,shuliang,jhdj,dj,jine from "liushuiw.DBF" where shuliang<0.00' ;
query3.Open ;
/////////////////////////////
这个就可以取到所有的出库记录了 但是,你上面的2个代码 我不知道该添加到哪里呢
from
(
select buyercode,case when inqty<=0 then inqty else 0 end outqty,inqty
from Temp
)
group by buyercode
/*
create table tablename
(spname varchar(20),Num integer)
insert into tablename (spname,num) values('a',8)
insert into tablename (spname,num) values('a',-1)
insert into tablename (spname,num) values('b',10)
insert into tablename (spname,num) values('a',-2)
insert into tablename (spname,num) values('a',5)
insert into tablename (spname,num) values('b',12)
insert into tablename (spname,num) values('b',-5)
insert into tablename (spname,num) values('b',-3)
insert into tablename (spname,num) values('a',-3)
*/SELECT a.spname as '商品名称',sum(abs(a.num)) as '数量' ,(select sum(b.num) from tableName b where a.spname=b.spname)as '剩余结存数量' from TableName a where a.num<0 group by spname
1、采购(入库)
2、库存
3、出库建议使用BDE+Table方式,访问表的代码如下:procedure TShowStaffFrm.FormShow(Sender: TObject);
var L:integer;
begin
L:=0;
with Table1 do
begin
Open;
First;
while not Eof do
begin
L:=L+1;
FieldByName('字段名').AsString....
Next;
end;
First;
end;
end;
效果不错。