Requête pour comparer 11 jours avec l'année précédente [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 20-02-2012 à 08:49:05
Tu devrais y arriver en enlevant l'année de ton group by et ajouter dans ton where année = 2012 ou 2011 (voir meme d'autres années si tu veux etendre la comparaison).
Marsh Posté le 20-02-2012 à 09:35:08
En faisant ta requête pour cette année et un LEFT JOIN sur la même requête et en réunissant les lignes décalées d'une année
Quelque chose dans ce genre :
Code :
|
Marsh Posté le 22-02-2012 à 22:58:00
Bonsoir mrbebert,
Je viens de tester ta requête il y avait 2 petites parenthèses en trop dans le select, mais après la requête est tombé en erreur à cause du group by
line 11, col 3: Incorrect syntax near 'GROUP'
Marsh Posté le 22-02-2012 à 23:00:16
Oui, il manque le "FROM" dans la sous-requête
Marsh Posté le 22-02-2012 à 23:04:25
Forcément c'est plus évident et logique comme ça
Merci, la requête est en train de tourner je te dis ça
Marsh Posté le 22-02-2012 à 23:12:53
Si c'est trop long, il y a peut être une optimisation à faire en filtrant les lignes de la sous-requête
Pas la peine qu'il traite toute la table alors qu'on sait qu'il n'y a que 11 jours qui nous intéressent.
Marsh Posté le 22-02-2012 à 23:18:01
Oui cela fait 14min qu'elle tourne
Tu penses à utiliser la même clause where dans la sous requête avec le left join en ajoutant quelque chose du style ?
Code :
|
Marsh Posté le 22-02-2012 à 23:36:05
Oui, la même clause WHERE, mais décalée d'1 an.
On fait une jointure entre des lignes et les mêmes lignes 1 an plus tôt.
Marsh Posté le 22-02-2012 à 23:38:34
Ok,
Erf après 32min la requête vient de fail avec comme erreur
Lookup Error - MySQL Database Error: Unknown column 'tb_previous_year.billing_date' in 'on clause'
Marsh Posté le 23-02-2012 à 09:17:22
Ligne 12, j'aurais mis :
) AS tb_previous_year ON b_previous_year.billing_date=(rfo_billing.billing_date - INTERVAL 1 YEAR)
Marsh Posté le 23-02-2012 à 09:53:30
Je crois que les 2 syntaxes sont acceptées
Sethenssen a écrit : Ok, |
Oui, j'ai renommé la colonne en "billing_date_old" dans la sous-requête. Du coup, il faut que ca corresponde dans la condition de la jointure :
ON tb_previous_year.billing_date_old=(rfo_billing.billing_date - INTERVAL 1 YEAR)
C'est dur de faire MySQL sans MySQL sous la main
Marsh Posté le 19-02-2012 à 12:29:52
Bonjour,
J'ai une requête ci-dessous qui me donne le nombre de conso payante/gratuite sur les 11 derniers jours en partant de la date du jour.
Ce que je recherche est d'afficher dans une seule requête la comparaison avec l'année dernière
J'ai essayé avec plusieurs imbrications d'union mais à chaque fois cela se résulte en erreur.
Si quelqu'un pouvait m'aider cela serait super sympas.
Merci d'avance.
Message édité par Sethenssen le 19-02-2012 à 12:30:36