我正在使用mysql,
我要做的是:
有两个表:
Invoices_Table:
你可以看到这个表的关键是日期字段, 此字段为YYYY-DD-MM格式,当您看到几个月内有多个发票时,例如1月份有发票1111,1112)。
请参阅INVOICE TABLE屏幕截图以供说明。
AGG_TABLE
这是一个当前为空的表,此表的键是日期字段,也是格式 YYYY-DD-MM如发票表中所示。 还有两个附加字段,TOTALB,TOTALI,它们是INTEGER格式。 请参阅AGG_TABLE屏幕截图以说明
我的目标是将发票表中的数据加载到空表中, 所以在空表中总共会有12条记录(每个月有一个条目) 这样TOTALB列显示: 该月的总金额和INVOICE TYPE = B, 以同样的方式,TOTALI列显示: 发票类型= I的同月总金额。
请参阅屏幕截图:RESULT,它说明了加载后所需的结果。
注意:如果某个月没有记录(如发票表的屏幕截图所示,第11个月没有记录),则AGG_TABLE表仍需要一个日期条目,其总和为0,表示TOTALB, TOTALI专栏。 此条目在RESULT屏幕中以黄色突出显示
感谢您的帮助!
答案 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]。
您可以随时在视图中制作选择语句以获取数据
从[查看名称]
中选择*