0
Je suis en train d'écrire une requête pour savoir combien commission que la société de mon client gagne en un mois comme ci-dessousrequête sql - Commission calcul sur 12 mois
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
Cela est bien pour travailler ce mois-ci , mais comment ferais-je cela pour donner des résultats pour les 12 derniers mois?
ce n'est pas bon quand il y a plusieurs années dans la base de données, mais j'ai l'idée – Robert
@Robert, c'est équivalent à la vérification 'MONTH' de l'original - si une vérification 'YEAR' est nécessaire ici, c'est aussi nécessaire dans l'original. Je soupçonne que vous êtes dans une analyse proche de la table complète dans les deux cas (mysql ne peut pas utiliser un index pour les expressions calculées telles que 'MONTH (blah)'), mais la seule solution de contournement, si c'est en effet un problème, serait de dénormaliser la table ('lesson', je suppose) en ajoutant un champ' month' logiquement redondant et un index composite approprié. –