请教一条查询语句的写法

zl1215 2004-08-04 10:23:50
我想查询出如下信息:

物品 上期数量 本月出库数 本月入库数 库存数量

其中物品和库存数量可直接从库存表中获取,出库数从销售表中统计,入库数从采购表中统计,上期数量通过三项计算获取。请教该查询语句如何书写。
...全文
197 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hevin 2004-08-07
  • 打赏
  • 举报
回复
完整的就是:
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.物品编码(+)
hevin 2004-08-07
  • 打赏
  • 举报
回复
哦,上面最后一句错了,应该是:
where a.物品编码=NewB.物品编码(+) and a.物品编码=NewC.物品编码(+)
hevin 2004-08-07
  • 打赏
  • 举报
回复
试试这个行不行:

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.物品编码(+)
zl1215 2004-08-07
  • 打赏
  • 举报
回复
up
马前小卒 2004-08-06
  • 打赏
  • 举报
回复
写错了,不是order by 物品编码,而是group by 物品编码。

原谅!原谅!原谅!
Simple945 2004-08-06
  • 打赏
  • 举报
回复
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.本月入库数
马前小卒 2004-08-06
  • 打赏
  • 举报
回复
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限制就可以了
zl1215 2004-08-06
  • 打赏
  • 举报
回复
我也是初学, Simple945(Simple945) 和: hero1981(英雄) 的写法我也曾试过,似乎编译不过。
jackkui 2004-08-05
  • 打赏
  • 举报
回复
小弟初学,写的一段程序不知是否符合要求

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
dinya2003 2004-08-05
  • 打赏
  • 举报
回复
先把你的表的字段及关联帖出来.
yul26 2004-08-05
  • 打赏
  • 举报
回复
把你需要需要统计得出的字段写成关于物品编码的数据库程序,假如获取入库数的程序名称为 Recordcount(itemcode),那么sql语句写为 select itemname,Recordcount(itemcode) as recordcount ..............,还可以直接做成视图
wick 2004-08-05
  • 打赏
  • 举报
回复
把表的字段等列出来。
zl1215 2004-08-05
  • 打赏
  • 举报
回复
库存表基本字段有:物品编码,库位,库存数量
采购表基本字段有:物品编码,入库库位,采购数量,采购日期
销售表基本字段有:物品编码,出库库位,销售数量,销售日期

这三个表通过物品编码和库位关联。
lvjack 2004-08-04
  • 打赏
  • 举报
回复
连表结构都不介绍,怎么取数据,各表直接怎么关联?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧