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

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

请问能不能实现以下表
物料编号,物料名称,物料规格,入仓日期,入仓数量,出仓日期,出仓数量,存仓数
我的是SQL2000数据库.
...全文
53 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Angelnet 2003-10-22
  • 打赏
  • 举报
回复
万分感谢w_rose(w_rose) !
w_rose 2003-10-22
  • 打赏
  • 举报
回复
if object_id('tempdb..#a') is not null drop table #a
select u.物料编号,u.物料名称,u.物料规格,
coalesce(a.入仓日期,b.出仓日期) as 入仓日期,isnull(a.入仓数量,0) as 入仓数量,
coalesce(a.入仓日期,b.出仓日期) as 出仓日期,isnull(b.出仓数量,0) as 出仓数量
into #a
from .......
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
谢谢,我还发现一个问题
当某一天只有出仓数据,而当天没有相应行的进仓数据时。只能显示“出仓日期”和“出仓数量的值。其他的为空。万分感谢!
hawkinsky 2003-10-21
  • 打赏
  • 举报
回复
运行前先drop table #a
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
w_rose(w_rose) 非常感谢你!
你的思路是正确的,我在查询分析器里测试,第一次运行是正常的。
在运行第二次就会提示:
数据库中已存在名为‘#a'的对象。
请问我该怎么处理。
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
运行错误提示:
数据库中已存在名为‘#a'的对象。
谢谢,由衷感谢!
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
谢谢楼上,我照你的方法,既然提示列无效。
w_rose 2003-10-21
  • 打赏
  • 举报
回复
又在最后一段发现了一个问题!

and (入仓日期=a.入仓日期 or 出仓日期=a.出仓日期)
------------------------------------------------------ 应为:
and (入仓日期<=a.入仓日期 or 入仓日期<=a.出仓日期 or 出仓日期<=a.入仓日期
or 出仓日期<=a.出仓日期)
w_rose 2003-10-21
  • 打赏
  • 举报
回复
如果数量可能为小数,最后一段中两个 isnull 函数中的 0 似应为 0.0 才对(避免将浮点计数变为整数)。
w_rose 2003-10-21
  • 打赏
  • 举报
回复
上面 “u.” 应为 “a.”。
w_rose 2003-10-21
  • 打赏
  • 举报
回复
没测试!特别是 isnull 函数的地方,楼主自己试一试:

select u.物料编号,u.物料名称,u.物料规格,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.出仓日期)
) as 存仓数
from #a as a
Angelnet 2003-10-21
  • 打赏
  • 举报
回复
救命呀!
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

不知现在是否说清楚?谢谢!
yujohny 2003-10-20
  • 打赏
  • 举报
回复
你这个是汇总表,还是流水帐
不过我看来流水帐不像流水帐,汇总表不像汇总表???
txlicenhe 2003-10-20
  • 打赏
  • 举报
回复
我觉得楼主的结果中列出两个日期不好理解。
wzh1215 2003-10-20
  • 打赏
  • 举报
回复
你的表一与表二,表三与表四干要分开?

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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