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, 展开
 我来答
百度网友8d17b9d
2014-08-28 · TA获得超过280个赞
知道小有建树答主
回答量:161
采纳率:100%
帮助的人:180万
展开全部

首先,我觉得你问题中说的要选出“求数量和大于库存的条件记录日期”,那这个日期难道不应该是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中写这个逻辑,完全可以用游标去做,更加灵活。

funlove999
2014-08-28 · 超过35用户采纳过TA的回答
知道答主
回答量:172
采纳率:0%
帮助的人:132万
展开全部
你没说SQLSERVER还是ORACLE,写法还真不一样。
追问
SQLSERVER
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式