|
Suppréssion sur une requete union |
Débuté par ( Alliances-Informat, 05 juin 2024 17:03 - 3 réponses |
| |
| | | |
|
| |
Membre enregistré 11 messages |
|
Posté le 05 juin 2024 - 17:03 |
Bonjour à tous,
j'aurais besoin d'un conseil afin de pouvoir supprimer un ou plusieurs enregistrements depuis une requête union; donc une suppression d'1 enregistrement trouvé en parcourant plusieurs fichiers.
D'avance merci de votre aide
SELECT Monfichier.codebarre AS codebarre, Monfichier.Description AS Description, Monfichier.dateachat AS dateachat, Monfichier.dateperemption AS dateperemption, Monfichier.Lieu AS Lieu FROM Monfichier WHERE Monfichier.codebarre = {Paramcodebarre}
UNION ALL
SELECT Monplacard.Description AS Description, Monplacard.codebarre AS codebarre, Monplacard.dateachat AS dateachat, Monplacard.dateperemption AS dateperemption, Monplacard.Lieu AS Lieu FROM Monplacard WHERE Monplacard.codebarre = {Paramcodebarre}
UNION ALL
SELECT MonGarage.Description AS Description, MonGarage.codebarre AS codebarre, MonGarage.dateachat AS dateachat, MonGarage.dateperemption AS dateperemption, MonGarage.Lieu AS Lieu FROM MonGarage WHERE MonGarage.codebarre = {Paramcodebarre}
ORDER BY Description ASC
-- Robert |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 698 messages |
|
Posté le 07 juin 2024 - 14:17 |
Bonjour, Pour un DELETE sur ce type de requête, je ne sais pas. Mais après exécution de la requête, vous obtenez 1 ou des enregistrements, vous pouvez déclenchez la suppression par une requête DELETE (par exemple) puisque vous connaissez l'enregistrement. CdltMessage modifié, 07 juin 2024 - 14:18 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 111 messages |
|
Posté le 07 juin 2024 - 22:13 |
Bonjour, Dans l'absolu, ce serait possible en utilisant ta requête UNION en tant que sous requête dans une requête DELETE WHERE IN. Toutefois tu serais obligé de contrôler chaque Tablen.Code avec le IN, le tout étant séparé par des OR. Le plus simple est de créer une requête qui inclus les 3 requêtes DELETE (Attention aux ";") :
DELETE FROM Table1 WHERE Table1.CodeTable1 = {pCode}; DELETE FROM Table2 WHERE Table2.CodeTable2 = {pCode}; DELETE FROM Table3 WHERE Table3.CodeTable3 = {pCode}
Note, c'est quand même plus lisible quand le code est balisé.
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 07 juin 2024 - 22:14 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 698 messages |
|
Posté le 08 juin 2024 - 16:49 |
Précision importante, exécutez la requête DELETE uniquement si la requête UNION retourne un enregistrement, par exemple :
SI HNbEnr(MaRequete_Union) <> 0 ALORS FIN sinon le DELETE supprimera les enregistrement correspondants à {Paramcodebarre} dans les différentes tables même si l'enregistrement n'existe pas dans toutes les tables. Cdlt |
| |
| |
| | | |
|
| | | | |
| | |
|