2011-08-25 136 views
-2

我试图创建一个系统,可以计算每月或一年的花费。现在,我已经创建了3个表(实际上有5个,但其中2个是项目清单和它们的价格,所以没有什么问题),我的数据库是: -需要帮助MySQL数据库(VB.NET)

(i)Daily - Field(Num ,DTotal,Date)>>每日保存所有项目的数值

(ii)每月 - 场地(Num,MTotal,StartDate)>>将每日数据表中的所有值从开始日期保存到该日期的月底。 (iii)Year - Field(num,YTotal,StartDate)>>保存月表中所有值从一个凝视的月份到年终。

每日部分我已经成功,但现在的问题是每月的一部分。我不知道如何计算它。我应该如何阅读每日表格从一个日期到另一个日期?假设我想从2011年6月15日至2011年8月31日保存。请帮助。

+1

如果您计划使用数据库,表ii)和iii)是多余的。通常(在数据库管理系统的意义上来说)你只需要表i)并且编写查询来获得每月和每年的数据。阅读关系数据库设计。 – Pete855217

回答

1
insert into monthly (ytotal, StartDate) 
select sum(Dtotal), MONTH(Date) date 
group by MONTH(Date) 
ON DUPLICATE KEY UPDATE 

此外,请务必在Monthly.StartDate上放置唯一索引。这和ON DUPLICATE KEY UPDATE条款将保护你的情况下插入运行多次。

请参阅http://dev.mysql.com/doc/refman/5.1/en/insert-select.html