sql,查询语句怎么写,返回入库时间,表(日期,数量) 5
数据为(20140208,50),(20140308,60),(20140318,-70),(20140408,120),(20140418,-60),当前库存总量为15...
数据为(20140208,50),(20140308,60),(20140318,-70),(20140408,120),(20140418,-60),当前库存总量为150,怎样可以返回根据时间倒退,求数量和大于库存的条件记录日期,即,在入库的数据中选取(20140308,60)(20140408,120),入库总量180(=120+60)>150(库存),返回(20140308,60)的所在时间20140308,
展开
2个回答
展开全部
首先,我觉得你问题中说的要选出“求数量和大于库存的条件记录日期”,那这个日期难道不应该是20140408, 因为只有在这一记录进入是,当时的数量和才大于当前库存。
如果我的理解是对的,你可以用下面的语句来实现:
SELECT top 1 t1.in_date
FROM test1 t1
LEFT JOIN test1 t2
ON t1.in_date >= t2.in_date
AND t1.qty > 0
GROUP BY t1.in_date
HAVING SUM(t2.qty) > 150
ORDER BY in_date
-- output:
-- 20140408
如果你是在存储过程或Job中写这个逻辑,完全可以用游标去做,更加灵活。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询