SUM和按日期和物料分组

大步向前

仍在学习SQL,请原谅我。我有3张桌子。物料表,material_req表和material_trans表。我想按材料分组,然后按年份分组。因此应为[物料,2019、2018、2017、2016,总计(总计为每种物料使用的总数量。

我试图将日期放置在select语句中,并按日期进行分组。但是返回的结果是很多相同的材料和很多的日期。我只需要一年。也许尝试同样的方法,只返回一年?

SELECT  material_req.Material
    --    , Material_Trans_Date   
      , SUM(-1 * material_trans.Quantity) AS 'TOTAL'
      ,Standard_Cost

    FROM
       Material_Req inner join Material_Trans 
    ON
        Material_Req.Material_Req = Material_Trans.Material_Req
        LEFt JOIN Material
    ON
        Material.Material = Material_Req.Material
    WHERE 
      material_trans.Material_Trans_Date between '20180101' AND GETDATE() 
    --   Material_Trans_Date between '20180101' AND '20181231'
    --   Material_Trans_Date between '20170101' AND '20171231'
    --   Material_Trans_Date between '20160101' AND '20161231'
    GROUP BY 
      material_req.Material   ,Standard_Cost 

    ORDER BY 
    Material_Req.Material, Standard_Cost

预期结果应按物料,2019、2018、2017、2016,Standard_Cost分组。“年份”列将包含该年每种材料的数量总和。

结果看起来像这样current_results

预期成绩

塞伯勒

如果您使用的是SQL Server,则可以尝试以下操作:

SELECT  material_req.Material
      , SUM(CASE WHEN DATEPART(YEAR, Material_Trans_Date) = '2019' THEN material_trans.Quantity ELSE 0 END) [2019 TOTAL] 
      , SUM(CASE WHEN DATEPART(YEAR, Material_Trans_Date) = '2018' THEN material_trans.Quantity ELSE 0 END) [2018 TOTAL]  
      ,Standard_Cost

    FROM
       Material_Req inner join Material_Trans 
    ON
        Material_Req.Material_Req = Material_Trans.Material_Req
        LEFt JOIN Material
    ON
        Material.Material = Material_Req.Material
    WHERE 
      material_trans.Material_Trans_Date between '20180101' AND GETDATE() 
    GROUP BY 
      material_req.Material   ,Standard_Cost 

    ORDER BY 
    Material_Req.Material, Standard_Cost

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按小时和日期分组

来自分类Dev

计数x和按日期y分组

来自分类Dev

按日期分组和汇总哈希

来自分类Dev

MySQL累积和按日期分组

来自分类Dev

按日期和条目数分组

来自分类Dev

MySQL按值和最大日期分组

来自分类Dev

Oracle按客户和日期分组

来自分类Dev

R中按日期分组的条件和

来自分类Dev

Laravel按日期和计数分组

来自分类Dev

如何计算枚举和按日期分组

来自分类Dev

按分组依据和日期排序

来自分类Dev

Oracle按客户和日期分组

来自分类Dev

SQLite按日期排序和分组依据

来自分类Dev

在R中按日期和处理分组

来自分类Dev

MySQL按值和最大日期分组

来自分类Dev

按日期列的月份和年份分组

来自分类Dev

按日期和更早分组的行数

来自分类Dev

MySQL 按日期和名称分组

来自分类Dev

选择:汇总值和按日期分组

来自分类Dev

根据人员,物料和商店分组

来自分类Dev

按日期和按 ID 分组获取表的最新记录

来自分类Dev

MySQL按日期和计数分组,包括缺少的日期

来自分类Dev

如何按日期分组日期和汇总在postgres中?

来自分类Dev

PHP数组按相同值和SUM分组

来自分类Dev

按和分组

来自分类Dev

按日期和类别分组弹性搜索查询

来自分类Dev

Linq查询以按日期对项目进行计数和分组

来自分类Dev

SQL:按条目数和条目日期分组

来自分类Dev

如何使SQL查询按日期分组和求和结果?