2011-08-25 2 views
-2

J'essaie de créer un système qui peut calculer les dépenses mensuelles ou annuelles. Maintenant, à peu près j'ai créé 3 tables (en fait il y en a 5 mais 2 sont des listes d'articles et leurs prix donc il n'y a rien de mal) sur ma base de données qui est: -Besoin d'aide avec la base de données MySQL (VB.NET)

(i) Daily - Field (Num , DTotal, Date) >> sauvegarder la valeur de tous les articles par jour

(ii) Mensuel - Champ (Num, MTotal, StartDate) >> sauvegarder toutes les valeurs du tableau journalier d'une date de début jusqu'à la fin du mois de cette date . (Iii) Year - Field (num, YTotal, StartDate) >> sauvegarder toutes les valeurs de la table mensuelle d'un mois de démarrage jusqu'à la fin de l'année.

La partie quotidienne J'ai réussi, mais le problème est maintenant avec la partie mensuelle. Je ne sais pas comment le calculer. Comment suis-je censé lire le tableau quotidien d'une date à une autre date? Disons que je veux économiser du 15/8/2011 au 31/8/2011. Aidez-moi, s'il vous plaît.

+1

tableaux ii) et iii) sont redondants si vous prévoyez d'utiliser une base de données. Normalement (au sens du mot SGBD), vous auriez simplement la table i) et écrivez des requêtes pour obtenir des données mensuelles et annuelles. Lisez sur la conception de base de données relationnelle. – Pete855217

Répondre

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

De même, assurez-vous de mettre un index unique sur Monthly.StartDate. Cela et la clause ON DUPLICATE KEY UPDATE vous protègeront au cas où l'insertion serait exécutée plusieurs fois.

voir http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

Questions connexes