Dédoublonner (LibreOffice.Base)

Fermé
jcpmarius Messages postés 4 Date d'inscription mercredi 30 mai 2018 Statut Membre Dernière intervention 31 mai 2018 - 30 mai 2018 à 16:56
jcpmarius Messages postés 4 Date d'inscription mercredi 30 mai 2018 Statut Membre Dernière intervention 31 mai 2018 - 31 mai 2018 à 11:04
Bonjour,

C'est une demande simple mais j'ai besoin de votre aide :

Voici ma base 2 tables.

T1

T1_ID T1_RECTO T1_VERSO
1 Chat Cat
2 Chien Dog
3 Rose Pink


T2

T2_ID T2_RECTO T2_VERSO
1 Vert Green
2 Boite Box
3 Rose Pink

Je voudrais faire une requête SQL qui m’édite T2.T2_ID, T2.T2_RECTO, T2.T2_VERSO après avoir vérifier qu'il n'y a pas de doublon T2.T2_RECTO" sur T2.T1_RECTO.

Ce qui me donnerai :

T2_ID T2_RECTO T2_VERSO
1 Vert Green
2 Boite Box

La valeur Rose se trouve déjà dans T1_RECTO, elle est donc retiré à l'édition.


J'utilise LibreOffice.Calc et LibreOffice.Base.
La base est constituée deux feuilles LibreOffice.Calc de quelques milliers de lignes, dans un même fichier, connecté via odbc sur LibreOffice.Base.

Je tourne autour de cette requête...

SELECT T1.T1_ID, T1.T1_RECTO, T1.T1_VERSO
FROM T1
LEFT JOIN T2
ON T1.T1_ID <> T2.T2_ID

Mais je me récupère ce message :

"LibreOffice Base
La requête ne peut pas être exécutée. Elle contient plus d'une table."

Voilà !

JC
A voir également:

2 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
30 mai 2018 à 20:46
bonsoir, commençons par quelque-chose qui devrait fonctionner:
SELECT * 
FROM T1 , T2 
ON T1.T1_RECTO = T2.T2_RECTO
0
jcpmarius Messages postés 4 Date d'inscription mercredi 30 mai 2018 Statut Membre Dernière intervention 31 mai 2018
30 mai 2018 à 22:57
Merci mais... Même pas !
:-(

J'avais déjà testé :

SELECT *
FROM T1 , T2
ON T1.T1_RECTO = T2.T2_RECTO

SELECT "T1"."T1_ID", "T1"."T1_RECTO", "T1"."T1_VERSO"
FROM T1 , T2
ON T1.T1_RECTO = T2.T2_RECTO

J'ai ce message d'erreur : "Erreur de syntaxe dans l'expression SQL"

JC
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
31 mai 2018 à 09:11
SELECT * 
FROM T1 , T2 
WHERE T1.T1_RECTO = T2.T2_RECTO
0
jcpmarius Messages postés 4 Date d'inscription mercredi 30 mai 2018 Statut Membre Dernière intervention 31 mai 2018
31 mai 2018 à 11:04
Bonjour,

J'ai compris que faire un requettage SQL d'une base dont les tables sont des feuilles Calc n'est possible que pour des sélections de colonne ou de ligne, pas pour faire un produit cartésien, jointure etc...
D’où ce message ""LibreOffice Base
La requête ne peut pas être exécutée. Elle contient plus d'une table."
Du coups j'ai fait une base avec des table "base" et les requêtes SQL fonctionnent.

Les erreurs de syntaxes ne me sont pas insurmontables.
Je suis en train de peaufiner la requête et quand ce sera fait, je la publierai.
Lidée étant de supprimer les lignes en double.



JC
0