如何将现有表(聚合数据)中的数据插入到mysql上的另一个现有表中?

时间:2018-03-13 09:55:26

标签: mysql insert aggregate-functions

我正在使用mysql,

我要做的是:

有两个表:

Invoices_Table:

你可以看到这个表的关键是日期字段, 此字段为YYYY-DD-MM格式,当您看到几个月内有多个发票时,例如1月份有发票1111,1112)。

请参阅INVOICE TABLE屏幕截图以供说明。

invoce table

AGG_TABLE

这是一个当前为空的表,此表的键是日期字段,也是格式 YYYY-DD-MM如发票表中所示。 还有两个附加字段,TOTALB,TOTALI,它们是INTEGER格式。 请参阅AGG_TABLE屏幕截图以说明

enter image description here

我的目标是将发票表中的数据加载到空表中, 所以在空表中总共会有12条记录(每个月有一个条目) 这样TOTALB列显示:  该月的总金额和INVOICE TYPE = B,  以同样的方式,TOTALI列显示:  发票类型= I的同月总金额。

请参阅屏幕截图:RESULT,它说明了加载后所需的结果。

enter image description here

注意:如果某个月没有记录(如发票表的屏幕截图所示,第11个月没有记录),则AGG_TABLE表仍需要一个日期条目,其总和为0,表示TOTALB, TOTALI专栏。 此条目在RESULT屏幕中以黄色突出显示

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

让我们试试这个

INSERT INTO invoice_agg(inv_date,inv_ag_total)   SELECT DATE_FORMAT(inv_date,“%Y-%m-01”),sum(inv_total)as inv_sum FROM invoice GROUP BY YEAR(inv_date),MONTH(inv_date)ASC

此查询应该符合您的目的,如果您创建此查询的视图,这将是一个更好的方法。此查询是针对mysql数据库的,请根据您的rdbms风格进行必要的调整。

创建视图很简单

创建视图[视图名称]为[select statement]。

您可以随时在视图中制作选择语句以获取数据

从[查看名称]

中选择*
相关问题