私のコードでは、次の時間に存在する行数を取得します。
今日 昨日 2 日前 3 日前 4 日前 5 日前 6 日前 7 日前 今週 今月 先月 今年
「今月」を除いて、すべての時間がうまく機能しています。これは正しく計算されていないようです。ここに私のSQLがあります:
$sql = mysql_query("select `website`,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE()) then 1 else 0 end) AS c_day,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 1 DAY) then 1 else 0 end) AS c_yesterday,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 2 DAY) then 1 else 0 end) AS c_2_days,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 3 DAY) then 1 else 0 end) AS c_3_days,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 4 DAY) then 1 else 0 end) AS c_4_days,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 5 DAY) then 1 else 0 end) AS c_5_days,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 6 DAY) then 1 else 0 end) AS c_6_days,
sum(case when DATE(FROM_UNIXTIME(`date_assigned`)) = DATE(CURDATE() - INTERVAL 7 DAY) then 1 else 0 end) AS c_7_days,
sum(case when WEEK(FROM_UNIXTIME(`date_assigned`)) = WEEK(CURDATE()) then 1 else 0 end) AS c_week,
sum(case when MONTH(FROM_UNIXTIME(`date_assigned`)) = MONTH(CURDATE()) then 1 else 0 end) AS c_month,
sum(case when MONTH(FROM_UNIXTIME(`date_assigned`)) = MONTH(CURDATE() - INTERVAL 1 MONTH) then 1 else 0 end) AS c_last_month,
sum(case when YEAR(FROM_UNIXTIME(`date_assigned`)) = YEAR(CURDATE()) then 1 else 0 end) AS c_year
from `assignments`
where `id_dealership`!='65' and `id_dealership`!='77' and `id_dealership`!='89'
group by `website`
order by `website` asc
") or die(mysql_error());
ご覧のとおり、c_month
私に問題を引き起こしているのはこれです。c_last_month が問題なく動作していることを考えると、なぜこれが起こっているのかわかりません。
もう一度編集:
テーブル構造といくつかのサンプルデータを次に示します。
CREATE TABLE IF NOT EXISTS `assignments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_dealership` int(11) NOT NULL,
`id_lead` int(11) NOT NULL,
`date_assigned` int(11) NOT NULL,
`website` varchar(255) NOT NULL DEFAULT '',
`make` varchar(255) NOT NULL DEFAULT '',
`model` varchar(255) NOT NULL DEFAULT '',
`ip_address` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `id_dealership` (`id_dealership`),
KEY `id_lead` (`id_lead`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9848 ;
(1165, 40, 1373, 1325540129, 'website.com', 'Ford', 'Edge', ''),
(1164, 34, 1372, 1325539601, 'website.com', 'Ford', 'F-350', ''),
(1163, 34, 1371, 1325537245, 'website.com', 'Ford', 'Focus', ''),
(1162, 34, 1370, 1325529221, 'website.com', 'Ford', 'Flex', ''),