2011-11-16 2 views
0

J'ai un problème construire une requête MySQL:an à compter et entrées mois de champs datetime

Je possède ce tableau « tSubscribers » étaient les abonnés je stocke à ma newsletter liste de diffusion.

Le tableau se présente comme suit (simplifié):

-- 
-- Table structure for tSubscriber 
-- 
CREATE TABLE tSubscriber (
    fId INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    fSubscriberGroupId INT UNSIGNED NOT NULL, 
    fEmail VARCHAR(255) NOT NULL DEFAULT '', 
    fDateConfirmed DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', 
    fDateUnsubscribed TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY (fId), 
    INDEX (fSubscriberGroupId), 
) ENGINE=MyISAM; 

Maintenant ce que je veux accomplir est d'avoir un diagramme montrant les abonnements et désabonnements par mois et par groupe d'abonnés.

J'ai donc besoin d'extraire l'année et les mois des dates fDateConfirmed, fDateUnsubscribed, de les compter et d'afficher le nombre trié par mois et par année pour un groupe d'abonnés.

Je pense que cette requête sql devient assez complexe et je ne peux tout simplement pas la comprendre. Est-ce même possible avec une requête.

Répondre

0

Vous aurez besoin de deux requêtes distinctes, une pour les abonnements et une autre pour les désabonnements.

SELECT COUNT(*), YEAR(fDateConfirmed), MONTH(fDateConfirmed) FROM tSubscriber GROUP BY YEAR(fDateConfirmed), MONTH(fDateConfirmed) 
SELECT COUNT(*), YEAR(fDateUnsubscribed), MONTH(fDateUnsubscribe) FROM tSubscriber GROUP BY YEAR(fDateUnsubscribed), MONTH(fDateUnsubscribed) 
+0

Merci beaucoup – user1036651

Questions connexes