Probleme de requete en cascade

Scufust
Invité n'ayant pas de compte PHPfrance

28 févr. 2006, 16:10

Bonjour à tous, j'ai un petit probleme avec une requete de mon programme, et j'aurais besoin d'un oeil extérieur

J'ai une table qui s'appelle "charge_service" avec les attributs suivants (id, charge_ke, code_service, annee, id_note, derniere, modification)
Tous d'abord j'ai limité la requete en cherchant tous les lignes dont l'annee est 2006 et l'id_note est 1 ->
req1 = SELECT * FROM charge_service WHERE annee=2006 et id_note=1

Jusque là pas de probleme, hors pour une annee et pour une id_note précise j'ai plusieurs ligne donc je vais prendre le ligne qui ont la derniere modification donc je cherche le max des derniere modification ->
req2 = SELECT MAX(derniere_modification) FROM charge_service
Ca me sort une date -> 2006-02-21 (pas de probleme)

Puis je veux dire que je prend les lignes de req1 sachant req2 donc
req3 = SELECT * FROM charge_service
WHERE id_note=1 AND annee=2006 AND derniere_modification =
(SELECT MAX(derniere_modification) FROM charge_service)
GROUP BY code_service

Je GROUP BY par code_service car pour un service je veux la derniere modification de chaque site (sachant qu'il y a 6 sites) donc je devrais me retrouver avec un tableau à 6 lignes avec le MAX de derniere_modification et donc leur valeur(charge_ke) que je pourrais par la suite additionner

Mais là, gros probleme il ne veut pas et il me dit que ya une ERREUR de syntaxe prés de la sous-requete

Ca commence à me .... car je ne vois pas mon erreur
En esperant que vous aurez compris, merci et gardez la peche

Eléphant du PHP | 136 Messages

28 févr. 2006, 17:42

c'est une question d'ordre de présentation dans la sélection, j'essaierais
$req3 = "SELECT MAX(derniere_modification) FROM charge_service WHERE id_note=1 AND annee=2006 GROUP BY code_service";