0
我想編寫一個查詢工作了多少佣金,我的客戶的公司在一個月的收入如下SQL查詢 - 計算佣金超過12個月
SELECT (rate * SUM(duration)/180) as commission
FROM teacher, person, lesson
WHERE person.id = teacher.person_id
AND lesson.teacher = person.id
AND MONTH(start_time) = MONTH(NOW())
GROUP BY person.id
這是罰款,這個月的工作了,但我如何做到這一點,在過去的12個月裏給出結果?
這是不好的時候有好幾年在數據庫中,但我的想法 – Robert 2009-10-17 17:42:44
@Robert,這相當於在原來的'MONTH'檢查 - 如果這裏需要一個'YEAR'檢查,這也是在原來需要。我確實懷疑你在這兩種情況下接近全表掃描(mysql不能使用計算表達式的索引,例如MONTH(blah)),但唯一的解決方法是,如果這確實是一個問題是通過添加一個邏輯冗餘的「月份」字段和一個合適的組合索引來使表格非正常化(我假設爲「課程」)。 – 2009-10-17 18:17:32