单据日期,单据类型,库房名称,货品名称,重量
-
XML code
-
djrq djlx kfmc hpmc zl 2010-03-20 初始库存 半成品 玉米 11 2010-03-20 初始库存 半成品 豆粕 22 2010-03-20 初始库存 半成品 鱼粉 33 2010-03-21 初始库存 原料 玉米 1 2010-03-21 初始库存 原料 豆粕 2 2010-03-22 原种入库 半成品 玉米 11 2010-03-22 原种入库 半成品 豆粕 22 2010-03-22 种子入库 半成品 猪预混料 6 2010-03-22 种子入库 半成品 蛋禽预混料 4 2010-03-22 种子出库 半成品 玉米 -1 2010-03-22 种子出库 半成品 种禽预混料 -2 2010-03-22 丸化后出库 半成品 鱼粉 -2 2010-03-25 初始库存 预混料 猪预混料 1 2010-03-25 原种入库 预混料 猪预混料 2 2010-03-25 原种入库 半成品 猪预混料 2 2010-03-26 丸化后入库 原料 玉米 1 2010-03-26 原种入库 销售仓库 玉米 11 2010-03-26 原种出库 销售仓库 豆粕 -2
-
SQL code
-
求:某个时间段内变化情况,需要报表如下:‘ 2010 - 03 - 20 ’——‘ 2010 - 03 - 26 ’ 库房名称 起始时间 入库 出库 结余数量 -- ------------------------------------------------------- 半成品 2010 - 03 - 20 sum (?) sum (?) sum (zl) 原料 2010 - 03 - 20 sum (?) sum (?) sum (zl) 预混料 2010 - 03 - 20 sum (?) sum (?) sum (zl) 销售仓库 2010 - 03 - 20 sum (?) sum (?) sum (zl) ... 合计 ? ? 解释:入库,出库都是求时间段开始时间至结束时间的和。结余是求截止时间的结余。例如上面就是求2010 - 03 - 26的结余。
SQL code
CREATE
TABLE
[
kc1
]
(
[
djrq
]
[
smalldatetime
]
NULL
,
[
djlx
]
[
nvarchar
]
(
20
),
[
kfmc
]
[
nvarchar
]
(
50
),
[
hpmc
]
[
nvarchar
]
(
50
),
[
zl
]
[
float
]
NULL
)
GO
insert
into
kc1
select
'
2010-03-20
'
,
'
初始库存
'
,
'
半成品
'
,
'
玉米
'
,
'
11
'
insert
into
kc1
select
'
2010-03-20
'
,
'
初始库存
'
,
'
半成品
'
,
'
豆粕
'
,
'
22
'
insert
into
kc1
select
'
2010-03-20
'
,
'
初始库存
'
,
'
半成品
'
,
'
鱼粉
'
,
'
33
'
insert
into
kc1
select
'
2010-03-21
'
,
'
初始库存
'
,
'
原料
'
,
'
玉米
'
,
'
1
'
insert
into
kc1
select
'
2010-03-21
'
,
'
初始库存
'
,
'
原料
'
,
'
豆粕
'
,
'
2
'
insert
into
kc1
select
'
2010-03-22
'
,
'
原种入库
'
,
'
半成品
'
,
'
玉米
'
,
'
11
'
insert
into
kc1
select
'
2010-03-22
'
,
'
原种入库
'
,
'
半成品
'
,
'
豆粕
'
,
'
22
'
insert
into
kc1
select
'
2010-03-22
'
,
'
种子入库
'
,
'
半成品
'
,
'
猪预混料
'
,
'
6
'
insert
into
kc1
select
'
2010-03-25
'
,
'
原种入库
'
,
'
预混料
'
,
'
猪预混料
'
,
'
2
'
insert
into
kc1
select
'
2010-03-26
'
,
'
原种出库
'
,
'
半成品
'
,
'
豆粕
'
,
'
-6
'
insert
into
kc1
select
'
2010-03-26
'
,
'
原种入库
'
,
'
销售仓库
'
,
'
玉米
'
,
'
11
'
insert
into
kc1
select
'
2010-03-26
'
,
'
种子出库
'
,
'
半成品
'
,
'
猪预混料
'
,
'
-1
'
insert
into
kc1
select
'
2010-03-26
'
,
'
原种入库
'
,
'
原料
'
,
'
豆粕
'
,
'
5
'
insert
into
kc1
select
'
2010-03-26
'
,
'
原种出库
'
,
'
原料
'
,
'
豆粕
'
,
'
-1
'
select
[
kfmc
]
,
min
(
[
djrq
]
),
sum
(
case
when
djlx
like
'
%入库%
'
then
zl
else
0
end
)
'
入库
'
,
sum
(
case
when
djlx
like
'
%出库%
'
then
zl
else
0
end
)
'
出库
'
,
sum
(zl) zl
from
kc1
where
[
djrq
]
between
'
2010-03-20
'
and
'
2010-03-26
'
group
by
[
kfmc
]
kfmc 入库 出库 zl
--
------------------------------------------------ ----------------------- ---------------------- ---------------------- ----------------------
半成品
2010
-
03
-
20
00
:
00
:
00
39
-
7
98
销售仓库
2010
-
03
-
26
00
:
00
:
00
11
0
11
预混料
2010
-
03
-
25
00
:
00
:
00
2
0
2
原料
2010
-
03
-
21
00
:
00
:
00
5
-
1
7
(
4
行受影响)
select isnull([kfmc],'总计') [kfmc],min([djrq]), sum(case when djlx like '%入库%' then zl else 0 end) '入库', sum(case when djlx like '%出库%' then zl else 0 end) '出库', sum(zl) zl from kc1 where [djrq] between '2010-03-20' and '2010-03-26' group by [kfmc] with rollup kfmc 入库 出库 zl -------------------------------------------------- ----------------------- ---------------------- ---------------------- ---------------------- 半成品 2010-03-20 00:00:00 39 -7 98 销售仓库 2010-03-26 00:00:00 11 0 11 预混料 2010-03-25 00:00:00 2 0 2 原料 2010-03-21 00:00:00 5 -1 7 总计 2010-03-20 00:00:00 57 -8 118 (5 行受影响)
http://topic.csdn.net/u/20100329/21/1450a994-ba1c-475a-a73d-7371d5c25021.html?535654092