MySQL将两个SELECT查询与一个表上的大小写合并
我想将两个查询合并为一个完整查询。我需要两个查询在一个聚合字段(MFG)上分组。我假设您使用了一个MySQL将两个SELECT查询与一个表上的大小写合并,mysql,select,join,merge,union,Mysql,Select,Join,Merge,Union,我想将两个查询合并为一个完整查询。我需要两个查询在一个聚合字段(MFG)上分组。我假设您使用了一个连接,但它在同一个表上,并且带有大小写,因此我不确定这是如何工作的 第一次查询(2015年) 第二次查询(2014) 期望的结果 MFG | Cost2015 | Cost2014 MFG1 | 1500 | 0 MFG2 | 1000 | 1200 MFG3 | 0 | 3600 | 100 |
连接
,但它在同一个表上,并且带有大小写
,因此我不确定这是如何工作的
第一次查询(2015年)
第二次查询(2014)
期望的结果
MFG | Cost2015 | Cost2014
MFG1 | 1500 | 0
MFG2 | 1000 | 1200
MFG3 | 0 | 3600
| 100 | 15
您可以在
SUM()中使用CASE
谢谢你,在我开始做的几件事中,它似乎起了作用,让我在接受之前再做一些测试。
SELECT
CASE
WHEN ITEM LIKE '%1%' THEN 'MFG1'
WHEN ITEM LIKE '%2%' THEN 'MFG2'
WHEN ITEM LIKE '%3%' THEN 'MFG3'
ELSE ''
END AS MFG,
SUM(COST) AS Cost2014
FROM
table
WHERE
TRANS_DATE BETWEEN '2014-12-01' AND '2014-12-31'
GROUP BY MFG
MFG | Cost2015 | Cost2014
MFG1 | 1500 | 0
MFG2 | 1000 | 1200
MFG3 | 0 | 3600
| 100 | 15
SELECT
CASE
WHEN ITEM LIKE '%1%' THEN 'MFG1'
WHEN ITEM LIKE '%2%' THEN 'MFG2'
WHEN ITEM LIKE '%3%' THEN 'MFG3'
ELSE ''
END AS MFG,
SUM(CASE WHEN TRANS_DATE BETWEEN '2014-12-01' AND '2014-12-31' THEN COST ELSE 0 END) AS Cost2014,
SUM(CASE WHEN TRANS_DATE BETWEEN '2015-12-01' AND '2015-12-31' THEN COST ELSE 0 END) AS Cost2015
FROM
TABLE
WHERE
TRANS_DATE BETWEEN '2014-12-01' AND '2015-12-31'
GROUP BY MFG