2011-06-07 1 views
0

J'ai mis en place un outil de comparaison de prix qui analyse les sites Web et détecte ensuite les changements de prix. J'ai une table qui contient le prix, l'id d'articles et l'identification de balayage. J'ai une autre table qui contient l'information d'article et une autre table qui contient une liste d'analyses et quand elles ont eu lieu. J'essaie de faire une requête qui peut détecter de nouveaux produits et les changements de prix. Voilà ce que j'ai ... mais il provoque une « utilisation incorrecte de la fonction de groupe » erreurErreur de requête mySQL 'Utilisation invalide de la fonction de groupe'

SELECT * FROM 
(SELECT * FROM price WHERE scan_id = MAX(scan_id) - 1) as P 

LEFT JOIN 

(SELECT * FROM price WHERE scan_id = MAX(scan_id)) as N 

ON 
P.item_id = N.item_id 
AND P.price != N.price 

JOIN item I ON N.item_id = I.item_id 

Pour une raison quelconque cette requête ne fonctionne pas.

+0

peut-être que ce n'est pas la solution, mais essayez d'envelopper d'abord la jointure avec les parenthèses – Dalen

+0

Je ne suis pas en train de regrouper par scan ID ... Je compare deux analyses avec le même item_id. Donc, si quelque chose que je veux grouper par item_id .... mais vous ne pouvez pas comparer le contenu d'un groupe pouvez-vous? – Mark

Répondre

0

Le problème était avec la partie MAX() de la sous-requête. Je l'ai enlevé et l'ai remplacé par les nombres et cela a fonctionné un festin.

Questions connexes