• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于sql的一个有关问题, 一定要帮小弟我

mysql 搞代码 7年前 (2018-05-31) 114次浏览 已收录 0个评论

关于sql的一个问题,急,在线等!!! 一定要帮我!
表结构:表history三个字段part,date,qty。表part_mst 也是三个字段:part,name,on_hand 
表part_mst的on_hand的字段是指现在(也就是今天的在库数量),表history的qty字段是指:进货多少或者出货多少,如果是进货就用正数的表示,如果是出货就用负数表示。表history的date字段是指是:进货或出货的日期。 
  画面是一个可以输入开始时间和结束时间的edit。比如我现在输入2008-02-11到2008-03-15; 
现在我向得到的是:2008-02-11以前的在库数量(on_hand 减去2008-02-11到今天的变化量),和2008-03-15那个时候的在库数量(on_hand 减去2008-02-15到今天的变化量)。还有在2008-02-11到2008-03-15时间段的增加量和减少量。 
请用sql文帮我表达出来,只能用一个表达式。谢谢!!!!!

这样对吗?
select history.part as part1,
history.on_hand, 
sum(iff(history.qty >= 0,history.qty,0)) as qty1, 
  sum(iff(history.qty < 0,-history.qty,0)) as qty2, 
  (select sum(qty) 
  from history 
  where history.part = part_mstpart
  and date between(2008/03/08,2008/03/25)) as total, 
  history.on_hand – total as on_hand1, 
  on_hand1 – 1 – 1 as last_on_hand 
from history left join part_mst on history.part = part_mst.part
where historyb.date between(2008/01/03,2008/03/08) 
group by a.part 
  history.name
  history.on_hand 
order by a.part
;

——解决方案——————–

特此介绍一下结贴的方法

如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 

结帖方法:点击版面右上方或右下方 [管理] ,进入页面后就可以输入密码,分别给分,结帖。 
 或参考:
http://www.csdn.net/help/over.asp
http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
=============================================================================
问题解决,请及时结贴。
 正确结贴方法:
 管理帖子–>给分–>输入密码–>结贴

== 思想重于技巧 ==


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于sql的一个有关问题, 一定要帮小弟我
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址