存仓表的问题?100分以表谢意!万分感谢!

Angelnet 2003-10-20 05:06:26
我有四个表
表一:入仓编号,入仓日期
表二:入仓编号,物料编号,物料名称,物料规格,入仓数量
表三:出仓编号,出仓日期
表四:出仓编号,物料编号,物料名称,物料规格,出仓数量

请问能不能实现以下表
物料编号,物料名称,物料规格,入仓日期,入仓数量,出仓日期,出仓数量,存仓数
我的是SQL2000数据库.
...全文
45 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongminsheng 2003-10-21
  • 打赏
  • 举报
回复
昨天给你的代码没仔细看吗?
fslyw 2003-10-21
  • 打赏
  • 举报
回复
用触发器吧,方便
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
我对编程数据库是外行,在学校从没学过,也没去培训过,自己折腾。
请问楼上我应该怎样设计才合理呢?谢谢!
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
select a.物料编号,a.物料名称,a.物料规格,a.入仓日期,a.入仓数量,
b.出仓日期,b.出仓数量 into #a
from
(select a.物料编号,a.物料名称,a.物料规格,b.入仓日期,sum(a.入仓数量) as 入仓数量
from 表二 as a inner join 表一 as b on a.物料编号=b.物料编号
group by a.物料编号,a.物料名称,a.物料规格,b.入仓日期
) as a
full join
(select a.物料编号,a.物料名称,a.物料规格,b.出仓日期,sum(a.出仓数量) as 出仓数量
from 表四 as a inner join 表三 as b on a.物料编号=b.物料编号
group by a.物料编号,a.物料名称,a.物料规格,b.出仓日期
) as b on a.物料编号=b.物料编号 and a.物料名称=b.物料名称 and
a.物料规格=b.物料规格 and a.入仓日期=b.出仓日期
select a.*,
(select isnull(sum(入仓数量),0)-isnull(sum(出仓数量),0)
from #a where 物料编号=a.物料编号 and 物料名称=a.物料名称 and
物料规格=a.物料规格 and (入仓日期<=a.入仓日期 or 入仓日期<=a.出仓日期 or 出仓日期<=a.入仓日期 or 出仓日期<=a.出仓日期)) as 存仓数 from #a as a

其它一切都是对的,只是:
当某一天只有出仓数据,而当天没有相应行的进仓数据时。只能显示“出仓日期”和“出仓数量的值。其他的为空。万分感谢
MarcuseXiao 2003-10-20
  • 打赏
  • 举报
回复
从你的实现功能看,我认为你的表设计有问题,多学学数据库知识吧
MarcuseXiao 2003-10-20
  • 打赏
  • 举报
回复
SELECT d.物料编号,d.物料名称,d.物料规格,a.入仓日期,b.入仓数量,c.出仓日期,c.出仓数量,存仓数=(b.入仓数量-c.出仓数量)
FROM 表一 A INNER JOIN 表二 B ON A.入仓编号=B.入仓编号
INNER JOIN 表四 D ON B.物料编号=D.物料编号
INNER JOIN 表三 C ON C.出仓编号=D.出仓编号
Angelnet 2003-10-20
  • 打赏
  • 举报
回复
物料编号,物料名称,物料规格,入仓日期,入仓数量,出仓日期,出仓数量,存仓数
L-001   皮纸   20×30 2003-10-18 100 2003-10-18 20 80
L-001 皮纸   20×30 2003-10-19 150 230
L-001 皮纸   20×30 200310-20 30 200

不知现在是否说清楚?谢谢!
aijibm 2003-10-20
  • 打赏
  • 举报
回复
能否再说明清楚点,看不懂

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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