2011-11-16 108 views
0

我有构建MySQL查询问题:从日期时间视场中的年份和月份条目

我有这个表“tSubscribers”是我保存用户对我的通讯邮件列表。

表看起来像这样(简化):

-- 
-- 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; 

现在我要完成的任务是有一个显示为每月每用户组的订阅和取消订阅的示意图。

因此,我需要从fDateConfirmed,fDateUnsubscribed日期中提取年份和月份,对它们进行计数并显示用户组按月份和年份排序的计数。

我认为这个SQL查询变得相当复杂,我只是无法得到我的头。这甚至可以用一个查询。

回答

0

您将需要两个单独的查询,一个用于订阅,另一个用于取消订阅。

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

非常感谢 – user1036651