SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[bb_sx_zptj]
@KSRQ varchar(20), --开始时间
@JSRQ varchar(20) --结束时间
AS
BEGIN
drop table t_zptj --这边删除,因为要根据每次输入的时间来重新进行数据统计
create table t_zptj(
月份 datetime,
装配总数 varchar(20),
)
--2.装配总数
update t_zptj 装配总数=temp1.发货数量 from
(select SUM(1) as 发货数量 from T_CONTRACT_ORDER a left join T_CONTRACT_ORDER_detail b
on a.sub_account_id=b.sub_account_id
where a.EXTEND50>=@KSRQ and a.extend50<=@JSRQ and a.EXTEND1='装配工程单'
group by b.OUT_NUM)
temp1
where t_zptj.装配总数=temp1.发货数量
我写的执行没有数据,请大神看看里面的条件就行了
相关联的表 :
T_CONTRACT_ORDER (订单表)
T_CONTRACT_ORDER_detail (订单明细表) //这是要查询的2张表
参与计算的字段:
1) 2表的sub_account_id字段(即订单的所有人)相等
2) extend1 (订单表)
T_CONTRACT_ORDER .extend1='装配工程单' --订单的分类条件,表明是我需要的装配类订单。
3) out_num(订单明细表)
T_CONTRACT_ORDER_detail .out_num 装配数量
4) extend50(订单表)
T_CONTRACT_ORDER .extend50 订单的时间
这是在存储过程里创建的表:
create table t_zptj(
时间 datetime
装配总数 int
)
根据输入的时间参数和订单时间进行比较
例:2014年2月 开始时间
2014年3月 结束时间
将2014年2月的属于装配的订单数量汇总
将2014年3月的属于装配的订单数量汇总
想得到的结果:(将一段时间的装配数量汇总起来)
展示如下:
时间 装配总数
2017-2 240
2017-3 120