Matcher les données d'un fichier et le résultat d'un SELECT
Résolupcsystemd Messages postés 702 Date d'inscription Statut Membre Dernière intervention - 21 juin 2024 à 16:22
- Matcher les données d'un fichier et le résultat d'un SELECT
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
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;
bonjour,
Peux-tu, soit t'exprimer en français, soit donner un exemple plus clair?
Où veux-tu obtenir quel résultat?
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..
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
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
Merci pour cette solution que je ne manquerais pas de tester.