你试试,我没测
select [订货行号],[订货数量]-sum([发货数量]) from [表] group by  [订货行号]

解决方案 »

  1.   

    如果你是要插入的话,那就需要知道:订货行号;此次发货:发货数量
    然后
    select [订货行号],[订货数量],@发货时间,@发货数量,min(nqty) -@发货数量 from 表 where id=@订货行号
      

  2.   

    可以試一下這句sql,應該可以解決你的問題select 订货行号,订货数量,发货时间,发货数量,订货数量-发货数量-ISNULL((select SUM(发货数量) from tablename where 订货行号=a.订货行号 and 发货时间<a.发货时间),0) as 未发货数量 from tablename as a
      

  3.   

    --三楼应该可以
    select 订货行号,订货数量, 发货时间,sum(发货数量) as 发货数量,
           未发货数量=(select 订货数量-SUM(发货数量)from TB where 订货行号=a.订货行号 and 发货时间<=a.发货时间)
    from TB a
    group by 订货行号,订货数量, 发货时间
    order by 订货行号,发货时间
      

  4.   

    取最新的[未发货数量]你把nqty改成[未发货数量]min(nqty)是什么用法?
      

  5.   

    SQL2012以上 之间累加。
    select  订货数量-sum(发货数量)over(partition by 订货行号  order by  发货时间) from tablename不是2012就改用递归CTE 或者基于不等连接的自连接
      

  6.   

    CREATE TABLE #T(
        订货行号 int,
        订货数量 int,
        发货时间 datetime,
        发货数量 int,
        未发货数量 int
    )
    INSERT INTO #T(订货行号,订货数量,发货时间,发货数量)
    SELECT 1,20,'2014/9/1',5 UNION ALL
    SELECT 1,20,'2014/9/2',5 UNION ALL
    SELECT 1,20,'2014/9/3',5 UNION ALL
    SELECT 2,30,'2014/9/1',5 UNION ALL
    SELECT 2,30,'2014/9/2',5 UNION ALL
    SELECT 2,30,'2014/9/3',5 UPDATE #T
       SET 未发货数量 = 订货数量 - (SELECT SUM(发货数量)
                                      FROM #T t0
                                     WHERE t0.订货行号 = #T.订货行号
                                       AND t0.发货时间 <= #T.发货时间)SELECT * FROM #T
       订货行号    订货数量 发货时间                   发货数量  未发货数量
    ----------- ----------- ----------------------- ----------- -----------
              1          20 2014-09-01 00:00:00.000           5          15
              1          20 2014-09-02 00:00:00.000           5          10
              1          20 2014-09-03 00:00:00.000           5           5
              2          30 2014-09-01 00:00:00.000           5          25
              2          30 2014-09-02 00:00:00.000           5          20
              2          30 2014-09-03 00:00:00.000           5          15
      

  7.   

    select *,
    订货数量- (select sum(发货数量) from 表格如下 where 订货行号=t.订货行号 and 发货时间<=t.发货时间)
    from 表格如下 t