English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

voila la requete, pouvez vous me dire si vous trouver une erreur ici ?

$sql="DELETE * WHERE EXISTS(SELECT DISTINCT * FROM Resultats R1 WHERE ID_MATERIEL='$compteur'
AND EXISTS (SELECT * FROM Resultats R2 WHERE R1.id <> R2.id AND R1.DATEHEURE_REC= R2.DATEHEURE_REC))";

merci

2007-02-11 10:52:22 · 3 réponses · demandé par Monegù-info 1 dans Informatique et internet Programmation

3 réponses

La syntaxe de delete, c'est :

delete from

where

essaye plutot :
DELETE
FROM
WHERE EXISTS(SELECT DISTINCT * FROM Resultats R1 WHERE ID_MATERIEL='$compteur'
AND EXISTS (SELECT * FROM Resultats R2 WHERE R1.id <> R2.id AND R1.DATEHEURE_REC= R2.DATEHEURE_REC))

2007-02-11 11:05:28 · answer #1 · answered by Hum... 3 · 1 1

Déjà il manque un from à ton premier delete, tu dis pas où tu veux effacer.

Je suppose que la colonne id est une clé.

Ensuite cette requête (qui j'imagine est censée vouloir effacer les doublons de lignes) ne dit pas quelle ligne effacer justement, dans ton cas actuel toutes les lignes de ta table disparaîtront car tu ne fais pas de liaison avec ta table principale. Autre détail le Distinct dans ta sous-requête n'a rien à y faire, pas besoin de ce travail derrière un Exists.

delete *
from Resultats
where id_materiel='$compteur'
and Exists (
select *
from Resultats R2
where Resultats.id < R2.id
and Resultats.DateHeure_Rec = R2.DateHeure_Rec
and R2.id_materiel = '$compteur'
)

C'est plus simple et plus lisible. Note la liaison de la sous-requête avec la requête principale. Je crois qu'il faut que tu rebosse tes algorithmes.

2007-02-11 13:17:50 · answer #2 · answered by bigjim 6 · 2 0

Comme expliqué ci-dessus c'est le from qui manque
Bon courage !

2007-02-13 18:33:58 · answer #3 · answered by Anonymous · 0 0

fedest.com, questions and answers