的MySQL如何计算和点心condtionally
问题描述:
我的MySQL的加入两个表后的结果如下: -的MySQL如何计算和点心condtionally
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
答
我明白了我想要的方式。在以下SQL中,只要条件为True
,我就使用Sum
而不是Count
至Add 1 to TotWks
。此外,只要条件为True
,我只需Adding
即Cost Field
至TotCost
。
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
条款,那么我会TotWks
和TotCost
下,共展宏图。
感谢您的帮助。
答
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;
爵士我的要求将与'选择类别,总和从your_tables (成本) 满足其中 (ID LIKE '%/ ABC /%') 和 (ID LIKE '%/ 2016-17 /%') 和 按类别分组;但是MySQL正在抛出错误'和' –
Raky
条件我的意思是你用来连接2个表的条件。据我的理解,你的问题有一个加入。如果没有,只是删除它。 – Jacob
我得到你说的先生,但MySQL正在抛出错误。 – Raky