MySQL如何计算和总结

时间:2017-09-03 03:40:24

标签: mysql count sum conditional-statements

在加入两个表之后我得到MySQL的结果如下: -

        ID              ||    Category      ||       Cost       ||
========================||==================||==================|| 
AMWP/ABC/2016-17/1      ||      1           ||      123.88      ||
AMWP/CDF/2016-17/2      ||      2           ||      222.99      ||
AMWP/GHI/2016-17/3      ||      3           ||      133.90      ||
AMWP/ABC/2017-18/1      ||      1           ||      100.10      ||
AMWP/CDF/2017-18/2      ||      2           ||      200.20      ||
AMWP/GHI/2017-18/3      ||      3           ||      100.00      ||

我想根据Catergory和每个Catergory的数量和成本总和提取摘要仅限于其中ID与ABC / CDF / GHI和财政年度如2016-17 / 2017-18之类的条件

2 个答案:

答案 0 :(得分:0)

    select category, sum(Cost)
        from your_tables
        where 
        ( ID like ‘%/ABC/% or ID like ‘%/CDF%/’ or ID like ‘%/GHI/%’ )
        and 
        ( ID like ‘%/2016-17/%’ or ID like ‘%/2017-18/%’ )
        and <joining condition>
        group by category;

答案 1 :(得分:0)

我按照我想要的方式得到它。在以下SQL中,只要条件为Sum,我就会使用Count而不是Add 1 to TotWksTrue。此外,只要条件为Adding,我就会Cost Field TotCostTrue

SELECT
Category,
SUM(if(ID LIKE '%2017-18%' AND ID like ‘%/ABC/%, 1, 0)) AS `TotWks`,
SUM(if(ID LIKE '%2017-18%' AND ID like ‘%/ABC/%, `amwplist`.`Cost`, 0)) AS `TotCost`
FROM  <main_Table>
LEFT OUTER JOIN <join_Table> ON <main_Table.ID> = <join_Table. ID> 
GROUP BY <main_Table.ID>

如果我省略GROUP BY条款,那么我将在TotWksTotCost下加注总计。

感谢您的帮助。