一道笔试题!!请高手指点指点啊!!
T1数据:
物品ID 入库数量 入库时间
1 10 2001.1.1
2 20 2001.1.1
3 50 2001.2.1
T2数据:
物品ID 出库数量 入库时间
1 5 2001.1.1
2 10 2001.1.1
3 20 2001.2.1
4 50 2001.2.1
问题:利用T1和T2入出库数据重新生成T3库存台帐数据
T3数据:
物品ID 物品月初结存数 物品月末结存数 结存年份 结存月份
1 0 5 2001 1
2 0 10 2001 1
1 5 5 2001 2
2 10 10 2001 2
3 0 30 2001 2
4 0 -50 2001 2
问题点数:0、回复次数:12Top
1 楼talen200308(hui)回复于 2004-12-02 01:18:17 得分 0
高位高手多谢指导知道小弟啊。。Top
2 楼fengyinglois(风影)回复于 2004-12-02 08:43:25 得分 0
典型的 进销存 问题
如果你的表结构是这样就很麻烦,应该加一个字段"每月的结存"Top
3 楼lmj2003(雁不归)回复于 2004-12-02 08:47:08 得分 0
我也想知道,帮你顶。Top
4 楼lh1979(rocket)回复于 2004-12-02 09:50:32 得分 0
用游标把t1表循环一遍,循环的时候对t1的每一条记录操作就可以得到你上面要的数据Top
5 楼zhang_yzy(六子儿)回复于 2004-12-02 10:57:24 得分 0
入库时间的类型是什么呀Top
6 楼qizhanfeng(glacier)回复于 2004-12-02 11:29:23 得分 0
upTop
7 楼zhang_yzy(六子儿)回复于 2004-12-02 12:11:22 得分 0
时间型
每月出入库数量表
select 物品ID,结存月份,结存年份,sum(数量)
into #temp
from (select 物品ID,
datename(year,入库时间) as 结存年份,
datename(month,入库时间) as 结存月份,
sum(入库数量) as 数量
from T1
group by 物品ID,
datename(year,入库时间)
datename(month,入库时间)
union all
select 物品ID,
datename(year,出库时间) as 结存年份,
datename(month,出库时间) as 结存月份,
-sum(出库数量)as 数量
from T2
group by 物品ID,
datename(year,出库时间)
datename(month,出库时间) ) a
order by 结存年份,结存月份,物品ID
select a.物品ID,
(select sum(数量) as 物品月初结存数 from #temp
where 物品ID =a.物品ID
and 结存年份<=a.结存年份
and 结存月份<a.结存月份),
(select sum(数量) as 物品月末结存数 from #temp
where 物品ID =a.物品ID
and 结存年份<=a.结存年份
and 结存月份<=a.结存月份),
a.结存年份,
a.结存月份
into T3
from #temp a
Top
8 楼hanzhi09(hz)回复于 2004-12-02 12:11:54 得分 0
循环了T1,T2中有T1中没有的数据怎么办?Top
9 楼viznet(雨影)回复于 2004-12-02 16:20:31 得分 0
MarkTop
10 楼prcgolf(小鸟)回复于 2004-12-03 11:03:20 得分 0
upTop
11 楼nhlic()回复于 2004-12-06 11:15:40 得分 0
看来我们公司的试题要换一下了,我在收到的邮件中发现了两个人的答案与楼上的一样。Top
12 楼nhlic()回复于 2004-12-06 11:33:52 得分 0
作为开发员能利用网络去寻求解决问题的答案,这点做得不错,但我的目的是考核解题的思路与对SQL的掌握程度,这样的做法与我们的初衷是背道而弛的。
Top




