首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用MySql计算初始库存

如何用MySql计算初始库存
EN

Stack Overflow用户
提问于 2015-11-27 18:35:58
回答 1查看 235关注 0票数 0

我试图找出一种方法,用周数来计算初始库存。我刚刚计算出了在第10周到第20周之间的“进货”和“缺货”这一要求。

有人能给我一个完整的请求来计算最终库存和初始库存吗?

代码语言:javascript
复制
SELECT 
      `week` ,
       SUM(case
         when  `week` between 10 AND 20 and `etat` =1
         then 1
         else 0
       end) AS inn
       ,
       SUM(case
         when `week` between 10 AND 20   and `etat` =2
         then 1
         else 0
       end)  AS out

       FROM fait_stock f
       where 1=1
       group by `week` 
       having `week` between 10 AND 20 

编辑

我想计算前几周的股票(初始股票,意思是weeks<10),例如,第10周,我有5周。第11周,应该是5+(第11周的股票)。第12周应该是5+(第11周的股票)+(第12周的股票)与其他周相同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-27 20:31:14

首先,您可以编写更短的查询:

代码语言:javascript
复制
SELECT 
    `week` ,
    SUM(IF(`etat`=1, 1, 0)) AS inn,
    SUM(IF(`etat`=2, 1, 0)) AS `out`
FROM fait_stock
WHERE `week` BETWEEN 10 AND 20
GROUP BY `week`

如果您现在加入它本身(通过一个小的修改,如果您希望周数小于10),您可以计算小于或等于给定周的所有周的和:

代码语言:javascript
复制
SELECT f1.`week`, SUM(f2.inn) AS inn, SUM(f2.`out`) AS `out`
FROM (
    SELECT 
        `week` ,
        SUM(IF(`etat`=1, 1, 0)) AS inn,
        SUM(IF(`etat`=2, 1, 0)) AS `out`
    FROM fait_stock
    WHERE `week` BETWEEN 10 AND 20
    GROUP BY `week`
) AS f1
JOIN (
    SELECT 
        `week` ,
        SUM(IF(`etat`=1, 1, 0)) AS inn,
        SUM(IF(`etat`=2, 1, 0)) AS `out`
    FROM fait_stock
    WHERE `week` BETWEEN 1 AND 20
    GROUP BY `week`
) AS f2 ON f2.`week` <= f1.`week`
GROUP BY f1.`week`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33963129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档