qq_39372401 2017-12-09 07:14 采纳率: 75%
浏览 1050
已采纳

这样的存储过程怎么写啊,求大神指点(SQL SERVER)

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

  • 写回答

6条回答 默认 最新

  • bbwolf 2017-12-09 12:05
    关注

    你的问题没有描述清楚,你应该描述你有哪两张表,参与计算的有什么字段,需要得到什么结果,结果对应条件,否则没法解答

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式