[英]SQL Union grouped by formatted strings
我试图总结来自2个不同表的2列,并按格式化字符串分组和排序。
模式要点是这样的:
Table A:
* Created At
* Amount Charged
Table B:
* Created At
* Cash Amount
请注意,它们共享一个列名,称为“ created at”,但是对于我要总结的列,它们具有不同的列名。
我想要一个结果,该结果表示对于1月份,表A收取的金额+表B现金金额的总和为x,对于2月为依此类推。
这是我格式化日期的方式:
str_to_date(concat(date_format( created_at
,'%Y-%m'),'-01')
您可以使用UNION ALL
:
SELECT str_to_date(concat(date_format(created_at, '%Y-%m'), '-01'), SUM(sub.c)
FROM (SELECT created_at, Amount AS c
FROM tabA
UNION ALL
SELECT created_at, Cash
FROM tabB) sub
GROUP BY str_to_date(concat(date_format(created_at, '%Y-%m'), '-01');
我将用EXTRACT(YEAR_MONTH FROM created_at)
替换str_to_date(concat(date_format(created_at, '%Y-%m'), '-01')
EXTRACT(YEAR_MONTH FROM created_at)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.