Matcher les données d'un fichier et le résultat d'un SELECT
Résolupcsystemd Messages postés 700 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 29 juillet 2024 - 21 juin 2024 à 16:22
- Matcher les données d'un fichier et le résultat d'un SELECT
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
3 réponses
Modifié le 28 mai 2024 à 12:23
Bonjour,
Depuis Excel on doit pouvoir accéder à la BDD. Autrefois je faisais cela avec une base Oracle via je crois ODBC.
Aujourd'hui dans Excel sur Données/Obtenir des données/A partir d'une BDD/BDD PostGreSQL on semble pouvoir paramétrer une connexion à la BDD.
Postgresql ayant une fonction de chargement de fichier plat, tu enregistres ton fichier excel en .csv et exécutes quelque chose comme :
create table mailcsv(mail1 text, mail2 text); copy mailcsv from 'mail.csv' (format csv, delimiter ';'); select mail1, email from mailcsv left join matable on mail1=email;
28 mai 2024 à 11:48
bonjour,
Peux-tu, soit t'exprimer en français, soit donner un exemple plus clair?
Où veux-tu obtenir quel résultat?
28 mai 2024 à 12:27
Bonjour,
C'est du français mais je te l'accorde pas simple a expliquer a l'écrit!
Si non en exemple, et bien tu as le format du fichier dans mon premier post et pour chaque email je dois regarder s'il existe en bdd et mettre dans la colonne 2 yes ou no donc en gros avoir le résultat suivant :
Colonne 1 | Colonne 2 toto@mail.com | yes titi@jotest.fr | yes tata@mailing.net | no etc..
Modifié le 28 mai 2024 à 15:12
Ah bon, tu veux indiquer dans la deuxième colonne si le texte dans la première colonne est présent, ou pas, dans la base de données.
Moi je copierais la première colonne dans une nouvelle table de la base de données.
Je ferais ensuite une requête sur la base de données, cette requête me renvoyant le résultat attendu.
SELECT m1.email , iif(m2.email=m1.email,"yes","no") from m1 left join m2 on m1.email=m2.email
28 mai 2024 à 15:15
"matcher" n'est pas français. Tu l'utilises quatre fois, avec quatre significations différentes.
28 mai 2024 à 12:21
Bon j'ai trouvé mais s'il y a plus simple ou plus propre je prends!
Je transforme le fichier Excel en CSV avec séparateur pipe puis j’exécute dans VI une commande SED afin de générer pour chaque email une ligne de SELECT que je joue dans postgresql et le fichier de résultats je le nettoie avec une commande GREP
21 juin 2024 à 16:22
Merci pour cette solution que je ne manquerais pas de tester.