Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1693 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Recherche multiple dans des tables de CSV

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche multiple dans des tables de CSV

n°1506730
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 13:01:01  profilanswer
 

Salut,

  

Je cherche a remplacer une requete du genre :

Code :
  1. select * from ISAUser.csv WHERE Description LIKE '718%' OR Description LIKE '708%' OR OR Description LIKE '915%' OR ...
   


J avais pour idée de creer une table a part avec tout mes codes (708, 718, 915,...)

  

mais dans Description, j'ai par exemple : 718265, 708652,...

  

et la je seche,... si quelqu'un peut me donner une piste ...

 


Merci


Message édité par Z_cool le 24-01-2007 à 14:31:18
mood
Publicité
Posté le 24-01-2007 à 13:01:01  profilanswer
 

n°1506749
vttman2
Je suis Open ...
Posté le 24-01-2007 à 13:38:14  profilanswer
 

Essaie  
=>
select ... where substr(description,1,3) = monchamp  
 
t'as quel SGBD car niveau fonction tu peux
avoir à la place de substr
=>
Subst , Substring, Mid, Copy ... dépend de ton SGBD ...
 

n°1506752
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 13:41:27  profilanswer
 

euhhh c est pour mettre dans un script VB, donc ...  
 
Microsoft Jet OLEDB je suppose.
 
mais j y connais pas grand chose, je découvre ... al  aide d exemple et de tuto que je trouve sur le net

n°1506754
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 13:45:39  profilanswer
 

En fait, je crois que c est pas clair ... Je vais donner un exemple.

 


J ai une table : appelon la Table1 (original)

 

718233 Toto
718368 Titi
708652 Tutu
915879 tata
230489 Lulu
718988 Mimi

 

et j ai une table 2:
708
718

 

Et j'ai donc besoin d une requete qui me retournerait :
718233 Toto
718368 Titi
708652 Tutu
718988 Mimi


Message édité par Z_cool le 24-01-2007 à 13:47:03
n°1506761
vttman2
Je suis Open ...
Posté le 24-01-2007 à 13:56:18  profilanswer
 

Essaie ça, faudrait savoir avec quoi ton VB est interfacé :  
Oracle, Db2, Sql server  ... Access ?
=>
 
select table1.monchampde6 , table1.monchamplib
from table1, table2  
where substring(table1.monchampde6,1,3) = table2.monchampde3
 
(ou
select table1.monchampde6 , table1.monchamplib
from table1 inner join table2  
on substring(table1.monchampde6,1,3) = table2.monchampde3)
 
 
Si erreur de syntaxe essaie de remplacer substring avec substr ... mid, copy ...
 
ok ?

n°1506769
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 14:11:35  profilanswer
 

vttman2 a écrit :

Essaie ça, faudrait savoir avec quoi ton VB est interfacé :
Oracle, Db2, Sql server  ... Access ?
=>

 



avec csv .... et je crois que tout mon probleme va venir de la ...

n°1506785
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 14:30:01  profilanswer
 

Bon ba j ai reussi.

 


Pour la posterité :

 


Code :
  1. Dim objConn
  2. Dim objRS
  3. Set objConn = CreateObject("ADODB.Connection" )
  4. objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\;Extended Properties='text;FMT=Delimited'"
  5. Set objRS = objConn.Execute("select * from ISAUser.csv WHERE mid(Description,1,3) IN (SELECT CC FROM ListeCC.txt) " )
  6. With objRS
  7.      While Not (.EOF Or .BOF)
  8.          wscript.echo .Fields("Domain" ).Value & ";" & .Fields("Name" ).Value &";" & .Fields("Department" ).Value & ";" &.Fields("Mail" ).Value &";" & .Fields("Description" ).Value & ""
  9.      'wscript.echo .Fields("cc" ).Value & ""
  10.          .MoveNext
  11.      Wend
  12.      .Close
  13. End With
  14. Set objRS = Nothing
  15. objConn.Close
  16. Set objConn = Nothing

 


vttman2 [:xp1700]  Merci tout plein pour le MID( )


Message édité par Z_cool le 24-01-2007 à 14:30:49
n°1506828
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 15:58:24  profilanswer
 

Bon en faite, si, encore un petit problème:
 
Description est pris comme un champs d'entier, est ce que quelqu'un serait comment forcer un texte ?

n°1506868
MagicBuzz
Posté le 24-01-2007 à 17:20:35  profilanswer
 

cstr() je pense.
 
sinon, tu le concatènes avec '' [:magicbuzz]


Message édité par MagicBuzz le 24-01-2007 à 17:20:45
n°1506923
Z_cool
⭐⭐⭐⭐
Posté le 24-01-2007 à 19:56:23  profilanswer
 

non en fait, c est carement le moteur ODBC qui remonte le mauvais genre. j ai trouvé d autre cas similaire sur le net. a parament il faudrait metre un fichier Jesaisplusquoi.ini pour definir ce qui est dans le fichier.
 
le : Jesaisplusquoi, je l ai au boulot, je le posterais demain

mood
Publicité
Posté le 24-01-2007 à 19:56:23  profilanswer
 

n°1507124
Z_cool
⭐⭐⭐⭐
Posté le 25-01-2007 à 14:17:29  profilanswer
 

Bon, voila, je me remet sur mon petit script ....
 
le fichier est un : Schema.ini
 
Bon, mission dui jour ... comment on genere un tel fichier...

n°1507125
MagicBuzz
Posté le 25-01-2007 à 14:18:27  profilanswer
 

lol :D

n°1507127
MagicBuzz
Posté le 25-01-2007 à 14:19:32  profilanswer
 

Le titre ne veut rien dire, mais y'a des exemple de fichier Schema.ini dedans :)
 
http://support.microsoft.com/kb/146224/fr

n°1507128
MagicBuzz
Posté le 25-01-2007 à 14:20:05  profilanswer
 

C'est quand même beau :love:
 

Citation :

HOWTO : à travers est dépassé par Utiliser l'authentification SQL d'établir une connexion dans des fichiers texte ASCII

n°1507154
Z_cool
⭐⭐⭐⭐
Posté le 25-01-2007 à 14:51:20  profilanswer
 

Oui, j ai reussi a creer mon fichier .ini.

 

pas trop dur en fin de compt.

 

mais la.. je but sur un autre probleme : mon fichier csv est un peut tout crade, et ma table ressemble plus a :

 


718233 Toto
00718368 Titi
708652 Tutu
915879 tata
230489 Lulu
718988 Mimi et j ai une table 2:
708
718
donc la, MID va plus trop ... domage, je l'aimais bien ....

 

une idee ?

 

n°1507163
MagicBuzz
Posté le 25-01-2007 à 15:10:51  profilanswer
 

disons que "prefix" est une table qui contient un champ "val" qui contient tous tes préfixes.
 
"matable" est ta table CSV
 

Code :
  1. select *
  2. from matable inner join prefix
  3. on matable.code like prefix.val + '%'


 
Sinon :

Code :
  1. select *
  2. from matable inner join prefix
  3. on mid(matable.code, 1, length(prefix.val)) = prefix.val


 
Je préfère la première solution :)


Message édité par MagicBuzz le 25-01-2007 à 15:11:28
n°1508296
Z_cool
⭐⭐⭐⭐
Posté le 29-01-2007 à 16:16:57  profilanswer
 

Bon, en fin de compt, j ai fais comme ca :

 
Code :
  1. Set objRS = objConn.Execute("select * from ISAUser.csv WHERE left(right(Description,6),3) IN (SELECT CC FROM ListeCC.txt) " )


puis derriere un autre :

Code :
  1. Set objRS = objConn.Execute("select * from ISAUser.csv WHERE left(right(Description,6),3) NOT IN (SELECT CC FROM ListeCC.txt) " )


ce que je comprend pas, c est qu en théorie, en réunissant ces deux requêtes, je devrais retrouver ma base de départ.

 

Hors, j'en ai 1211 qui passent a la trappe ....

 

et les retrouver parmi 75000.... pas évidant

 

n°1508325
MagicBuzz
Posté le 29-01-2007 à 17:07:15  profilanswer
 

utilise ma requête avec le like :o

n°1508481
Z_cool
⭐⭐⭐⭐
Posté le 30-01-2007 à 08:25:43  profilanswer
 

ouai, mais en fait c est plus compliqué que ca, il faut a tout pris que le code de recherche soit a 6 caracteres de la droite.
 
si j ai bien compris ta requete, il detecera aussi bien :
718000
que  
000718
 
me trompe je ?

n°1508524
MagicBuzz
Posté le 30-01-2007 à 10:49:07  profilanswer
 

Je pense que tu te trompes, oui.
 
Je pige pas ton problème.
 
Mettons que tu as ça dans ta table des préfixes :
 
123
456
654321
 
Et ça dans tes données :
000123
123000
456123
11234
654321000
126543210
321456
 
Ca va retourner :
 
123000
456123
654321000
 
Re tirn d'autre.


Message édité par MagicBuzz le 30-01-2007 à 10:49:24

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Recherche multiple dans des tables de CSV

 

Sujets relatifs
forcer le téléchargement de CSVProblème de Recherche en FULLTEXT
moteur de recherche et Flash (UTF8)recherche codeur PHP pour jeu de rôle en ligne gratuit.
recherche d'une solution pour mcd autre que l'heritage[RESOLU] Recherche éditeur table SQL ultra basique
Super addition complexe sur plusieurs tables.actionscript : faire une recherche sur tout les fichiers
Macro de recherche, total, puis suppressionORACLE : un outil (une methode) pour decrire les tables en HTML ?
Plus de sujets relatifs à : Recherche multiple dans des tables de CSV


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR