入库时间 入库数量 订单数量
20150105 3000 10000
20150106 4000 10000
20150108 4050 10000
20150109 950 10000本人sql新手,有如上表个,希望将入库数量累加,当累加的数量>=订单数量,取入库时间的值出来
如上,取20150108出来
说明,订单数量是同一个订单的,只不过每行都出现而已。就是说同一个订单的多次入库,因为投产的数量大于订单的数量,会出现入库数量大于订单的数量的情况,我现在需要将入库的累计数量刚刚大于等于订单的数量的入库日期
20150105 3000 10000
20150106 4000 10000
20150108 4050 10000
20150109 950 10000本人sql新手,有如上表个,希望将入库数量累加,当累加的数量>=订单数量,取入库时间的值出来
如上,取20150108出来
说明,订单数量是同一个订单的,只不过每行都出现而已。就是说同一个订单的多次入库,因为投产的数量大于订单的数量,会出现入库数量大于订单的数量的情况,我现在需要将入库的累计数量刚刚大于等于订单的数量的入库日期
解决方案 »
- 数据库数值转换问题
- 求一条sql语句实现插入数据并返回这条记录的id
- SQL中怎么追加记录?
- 请教高手——问一个幼稚的问题。如何在Deleted和Inserted表中取得上一次影响记录的某个字段,谢谢:)
- 关于left join 的问题,求各位大神指导;查询出来的记录数不一样
- 什么叫 "Chinese_PRC_CI_AS" 和 "Chinese_PRC_CI_AI" 之间的排序规则冲突。 执行一个SQL查询 报的错误信息 急求解答
- 求教:如何写这条select语句
- SQL的判断语句。看看就知道。。。
- 求一个SQL语句
- 求应付款减已付款得出未付款及付款比率
- 在其他字段值相同的条件下,如何从多条数据中取出时间最近的一个
- 为什么点击了登录跳转不到login2.jsp
FROM TB T1
JOIN TB T2 ON T1.入库时间>=T2.入库时间
GROUP BY T1.入库时间,T1.订单数量
HAVING SUM(T2.入库数量)>T1.订单数量
ORDER BY T1.入库时间只查一个订单的话,直接这样
SELECT T1.订单号,T1.入库时间
FROM TB T1
JOIN TB T2 ON T1.订单号=T2.订单号 AND T1.入库时间>=T2.入库时间
GROUP BY T1.订单号,T1.入库时间,T1.订单数量
HAVING SUM(T2.入库数量)>=T1.订单数量
)T
GROUP BY 订单号
说明:1、订单单别单号序号组成唯一值,工单单别单号也组成唯一值,两者是一一对应的
2、我需要得到一个新的表TD002订单单号,TD003订单序号,TD008订单数量,TD013预计交货日期,TA001工单单别,TA002工单单号,data,lj,zs
字段说明:data 考核的标准是,一个订单对应一个工单生产,一个生产的单子是分多批次入库的,当入库数量累加刚刚大于等于订单数量的时候,取出来的入库日期(TF003)
lj:在此情况下累计的入库数量
zs:这个工单的总的入库数量
SELECT *,SUM(TG011入库数量)OVER(PARTITION BY TA002工单单号)zs
FROM TB
)
SELECT TD002订单单号,TD003订单序号,TD008订单数量,TD013预计交货日期,TA001工单单别,TA002工单单号
,MIN(data)data,MIN(lj)lj,zs
FROM(
SELECT T1.TD002订单单号,T1.TD003订单序号,T1.TD008订单数量,T1.TD013预计交货日期,T1.TA001工单单别,T1.TA002工单单号,T1.zs
,T1.TF003入库日期 data,SUM(T2.TG011入库数量)lj
FROM CTE T1
JOIN CTE T2 ON T1.TD002订单单号=T2.TD002订单单号
AND T1.TF003入库日期>=T2.TF003入库日期
GROUP BY T1.TD002订单单号,T1.TD003订单序号,T1.TD008订单数量,T1.TD013预计交货日期,T1.TA001工单单别,T1.TA002工单单号,T1.zs
,T1.TF003入库日期
HAVING SUM(T2.TG011入库数量)>=T1.TD008订单数量
)T
GROUP BY TD002订单单号,TD003订单序号,TD008订单数量,TD013预计交货日期,TA001工单单别,TA002工单单号,zsSQL2005+有效