這是我的表結構。這是真正的問題,所以不要給予無效。mysql查詢不會返回預期的結果
CREATE TABLE `acd_goals` (
`goals_id` int(11) NOT NULL AUTO_INCREMENT,
`pipeline_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`goals_month` int(2) NOT NULL,
`goals_year` int(4) NOT NULL,
`goals_amount` decimal(10,2) NOT NULL,
`nos_of_opp` int(11) NOT NULL,
`created_by` int(11) NOT NULL,
`created_date` datetime NOT NULL,
`modified_date` datetime NOT NULL,
PRIMARY KEY (`goals_id`)
) ENGINE=InnoDB AUTO_INCREMENT=508 DEFAULT CHARSET=latin1;
檢查這個小提琴的數據。 click here。
我想要月份當前月份和前2個月的結果,例如:當前月份是Feb-2017
,那麼結果將會從Dec-2016
到Feb-2017
。
我已經嘗試過下面的查詢,但它不會返回正確的結果給我。
SELECT * FROM `acd_goals`
where (goals_month >=DATE_FORMAT('2017-06-01','%c') and goals_year = DATE_FORMAT('2017-06-01','%y') or (MONTH(NOW())>= goals_month and goals_year =YEAR(NOW())) and user_id =1)
我預期的結果是:
goals_id pipeline_id user_id goals_month goals_year goals_amount nos_of_opp created_by created_date modified_date
410 2 1 6 2017 100 2 1 2017-02-09T19:52:46Z 2017-02-09T19:52:46Z
411 2 1 7 2017 200 4 1 2017-02-09T19:52:46Z 2017-02-09T19:52:46Z
412 2 1 8 2017 200 4 1 2017-02-09T19:52:46Z 2017-02-09T19:52:46Z
如果通過八月期待六月,那麼爲什麼您預期的結果集都二月的數據? –
我想得到當月和前2個月的結果,所以當出現'feb-2017'時,結果會從'dec-2016'到'feb-2017' –
爲什麼是負數?我的問題有什麼問題嗎? –