小弟初学,写的一段程序不知是否符合要求declare v_num1 number; v_num2 number; v_num3 number; v_numlast number; begin select a.num1,b.num2,c.num3 into v_num1,v_num2,v_num3 from ta a,tb b,tc c where a.code=b.code and b.code=c.code and c.code = a.code; v_numlast=计算v_num1,v_num2,v_num3; end
select a.物品编码,c.本月出库数,b.本月入库数,a.库存数量,(上期数量的计算表达式) as 上期数量 from 库存表 a, (select 物品编码,sum(采购数量) as 本月入库数 from 采购表 order by 物品编码 ) b, (select 物品编码,sum(销售数量) as 本月出库数 form 销售表 order by 物品编码 ) c where a.物品编码=b.物品编码 and a.物品编码=c.物品编码我是新手,写一个供参考 上期数量不知公式 暂时设采购表和销售表只存一个月的信息,如不是,在表b,c中加上where限制就可以了
select a.物品编码,c.本月出库数,b.本月入库数, sum(a.库存数量+b.本月入库数-c.本月出库数) as 库存数量 from 库存表 a, (select 物品编码,sum(采购数量) as 本月入库数 from 采购表 group by 物品编码) b, (select 物品编码,sum(销售数量) as 本月出库数 from 销售表 group by 物品编码) c where a.物品编码=b.物品编码 and a.物品编码=c.物品编码 group by a.物品编码,c.本月出库数,b.本月入库数
试试这个行不行:select a.物品编码,a.库存数量+NewB.入库数量-NewC.出库数量 上期数量,NewB.入库数量,NewC.出库数量, a.库存数量 from 库存表 a,( select b.物品编码,sub(b.采购数量) 入库数量 from 采购表 b where b.采购日期 >= trunc(SYSDATE,'MONTH') and b.采购日期 <= last_day(sysdate) group by b.物品编码 ) NewB, (select c.物品编码,sub(c.销售数量) 出库数量 from 销售表 c where c.销售日期 >= trunc(SYSDATE,'MONTH') and c.销售日期 <= last_day(sysdate) group by c.物品编码 ) NewC where a.物品编码=b.物品编码(+) and a.物品编码=c.物品编码(+)
哦,上面最后一句错了,应该是: where a.物品编码=NewB.物品编码(+) and a.物品编码=NewC.物品编码(+)
完整的就是: select a.物品编码,a.库存数量+NewB.入库数量-NewC.出库数量 上期数量,NewB.入库数量,NewC.出库数量, a.库存数量 from 库存表 a,( select b.物品编码,sub(b.采购数量) 入库数量 from 采购表 b where b.采购日期 >= trunc(SYSDATE,'MONTH') and b.采购日期 <= last_day(sysdate) group by b.物品编码 ) NewB, (select c.物品编码,sub(c.销售数量) 出库数量 from 销售表 c where c.销售日期 >= trunc(SYSDATE,'MONTH') and c.销售日期 <= last_day(sysdate) group by c.物品编码 ) NewC where a.物品编码=NewB.物品编码(+) and a.物品编码=NewC.物品编码(+)
v_num1 number;
v_num2 number;
v_num3 number;
v_numlast number;
begin
select a.num1,b.num2,c.num3
into v_num1,v_num2,v_num3 from
ta a,tb b,tc c
where a.code=b.code and b.code=c.code and c.code = a.code;
v_numlast=计算v_num1,v_num2,v_num3;
end
from 库存表 a,
(select 物品编码,sum(采购数量) as 本月入库数 from 采购表 order by 物品编码 ) b,
(select 物品编码,sum(销售数量) as 本月出库数 form 销售表 order by 物品编码 ) c
where a.物品编码=b.物品编码 and a.物品编码=c.物品编码我是新手,写一个供参考
上期数量不知公式
暂时设采购表和销售表只存一个月的信息,如不是,在表b,c中加上where限制就可以了
sum(a.库存数量+b.本月入库数-c.本月出库数) as 库存数量
from 库存表 a,
(select 物品编码,sum(采购数量) as 本月入库数 from 采购表 group by 物品编码) b,
(select 物品编码,sum(销售数量) as 本月出库数 from 销售表 group by 物品编码) c
where a.物品编码=b.物品编码 and a.物品编码=c.物品编码
group by a.物品编码,c.本月出库数,b.本月入库数
from 库存表 a,( select b.物品编码,sub(b.采购数量) 入库数量
from 采购表 b
where b.采购日期 >= trunc(SYSDATE,'MONTH')
and b.采购日期 <= last_day(sysdate)
group by b.物品编码 ) NewB,
(select c.物品编码,sub(c.销售数量) 出库数量
from 销售表 c
where c.销售日期 >= trunc(SYSDATE,'MONTH')
and c.销售日期 <= last_day(sysdate)
group by c.物品编码 ) NewC
where a.物品编码=b.物品编码(+) and a.物品编码=c.物品编码(+)
where a.物品编码=NewB.物品编码(+) and a.物品编码=NewC.物品编码(+)
select a.物品编码,a.库存数量+NewB.入库数量-NewC.出库数量 上期数量,NewB.入库数量,NewC.出库数量, a.库存数量
from 库存表 a,( select b.物品编码,sub(b.采购数量) 入库数量
from 采购表 b
where b.采购日期 >= trunc(SYSDATE,'MONTH')
and b.采购日期 <= last_day(sysdate)
group by b.物品编码 ) NewB,
(select c.物品编码,sub(c.销售数量) 出库数量
from 销售表 c
where c.销售日期 >= trunc(SYSDATE,'MONTH')
and c.销售日期 <= last_day(sysdate)
group by c.物品编码 ) NewC
where a.物品编码=NewB.物品编码(+) and a.物品编码=NewC.物品编码(+)