2010-01-18 8 views
2

J'ai le DB suivant.Comment créer une requête pour un total mensuel en MySQL?

CREATE TABLE IF NOT EXISTS `omc_order` (
    `order_id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `customer_id` int(10) unsigned NOT NULL, 
    `total` decimal(10,2) NOT NULL, 
    `order_date` datetime NOT NULL, 
    `delivery_date` datetime NOT NULL, 
    `payment_date` datetime NOT NULL, 
    PRIMARY KEY (`order_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=32; 

Je veux créer une page statistique pour voir paiement total et l'ordre total mensuel.

Dans une page, je souhaite afficher quelque chose comme ça.

Month Year Total Order Total Payment 
Sep  09  800    760 
Oct  09  670    876 
Nov 
... 
... 

Maintenant, je ne sais pas comment créer une requête pour cela.

Quelqu'un pourrait-il me donner quelques idées sur la façon d'aborder cela?

+1

Je ne suis pas sûr de ce que «la commande totale» était censée être juste un compte de commandes? –

Répondre

0

Ce qui suit devrait vous aider à démarrer.

select sum(total) from omc_order group by month(order_date), year(order_date) 
6

Vous pouvez utiliser le pour regrouper les lignes pour chaque mois et les les résumer. Quelque chose comme cela pourrait être un point de départ:

SELECT monthname(payment_date) AS Month, 
     year(payment_date) AS Year, 
     sum(total) AS 'Total Order', 
     sum(??) AS 'Total Payment' 
    FROM omc_order 
ORDER BY payment_date 
GROUP BY month(payment_date), 
     year(payment_date); 

Je ne sais pas comment vous calculer les valeurs de Total Payment.

Modifier: sum() est un MySQL function.

+0

Dois-je ajouter sum feild dans DB? – shin

+0

@shin Nope qui est une fonction dans MySQL –

+0

Cela a fonctionné pour moi les réservoirs de l'homme beaucoup – humphrey

Questions connexes