- Dans le résultat, il me faut les doublons aussi.
- Le champs index n'est pas un index mais juste une copie du champs
index de la table A (qui lui est indexé)
- La recherhce n'est pas strict mais "Contenant"
Si vous avez une piste en SQL, je suis preneur
Merci de votre aide.
PS :Maintenant que je suis plus devant la machine je me pose la
question si je dois pas lier TableB/Champs_1 aux 3 Champs de la Table
A.
--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
db
Le 28/07/2015 18:20, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données. Résultat d'une requête basé sur Table B Champs_1: Index Champs_1 Champs_2 Champs_3 1 AA1 AA3 AA6 (<--AA3) 2 BB3 AA7 AA34 (<--AA3) 3 EE5 RET2 YPO8 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 6 YZA5 EEE5 EEE6 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 4 RET3 YY2 YP5 (<--RET)
Bonsoir,
Quelque chose comme :
SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs1 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs2 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs3 like "*" & tB.champs1 & "*"
db
Le 28/07/2015 18:20, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données.
Résultat d'une requête basé sur Table B Champs_1:
Index Champs_1 Champs_2 Champs_3
1 AA1 AA3 AA6 (<--AA3)
2 BB3 AA7 AA34 (<--AA3)
3 EE5 RET2 YPO8 (<--EE5)
3 EE5 RET2 YPO8 (<--RET)
6 YZA5 EEE5 EEE6 (<--EE5)
3 EE5 RET2 YPO8 (<--RET)
4 RET3 YY2 YP5 (<--RET)
Bonsoir,
Quelque chose comme :
SELECT index, tA.champs1, tA.champs2, tA.champs3
from tB inner join tA on tA.champs1 like "*" & tB.champs1 & "*"
union all
SELECT index, tA.champs1, tA.champs2, tA.champs3
from tB inner join tA on tA.champs2 like "*" & tB.champs1 & "*"
union all
SELECT index, tA.champs1, tA.champs2, tA.champs3
from tB inner join tA on tA.champs3 like "*" & tB.champs1 & "*"
Le 28/07/2015 18:20, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données. Résultat d'une requête basé sur Table B Champs_1: Index Champs_1 Champs_2 Champs_3 1 AA1 AA3 AA6 (<--AA3) 2 BB3 AA7 AA34 (<--AA3) 3 EE5 RET2 YPO8 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 6 YZA5 EEE5 EEE6 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 4 RET3 YY2 YP5 (<--RET)
Bonsoir,
Quelque chose comme :
SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs1 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs2 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs3 like "*" & tB.champs1 & "*"
db
Jose Muller
Le mardi 28 juillet 2015 18:20:52 UTC+2, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données.
- Dans le résultat, il me faut les doublons aussi. - Le champs index n'est pas un index mais juste une copie du champs index de la table A (qui lui est indexé) - La recherhce n'est pas strict mais "Contenant"
Si vous avez une piste en SQL, je suis preneur
Merci de votre aide.
PS :Maintenant que je suis plus devant la machine je me pose la question si je dois pas lier TableB/Champs_1 aux 3 Champs de la Table A.
-- « le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun) C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
SQL_Text = "INSERT INTO FICHIERTMP " _ & "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _ & "FROM [FICHIER SOCIAL] " _ & "WHERE [NUMERO DE DOSSIER] in ( " _ & "SELECT [NUMERO DE DOSSIER] " _ & "FROM [FICHIER SOCIAL] " _ & "GROUP BY [NUMERO DE DOSSIER] " _ & "HAVING count([NUMERO DE DOSSIER])<>1) ;" '
DoCmd.RunSQL SQL_Text
Le mardi 28 juillet 2015 18:20:52 UTC+2, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données.
- Dans le résultat, il me faut les doublons aussi.
- Le champs index n'est pas un index mais juste une copie du champs
index de la table A (qui lui est indexé)
- La recherhce n'est pas strict mais "Contenant"
Si vous avez une piste en SQL, je suis preneur
Merci de votre aide.
PS :Maintenant que je suis plus devant la machine je me pose la
question si je dois pas lier TableB/Champs_1 aux 3 Champs de la Table
A.
--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
SQL_Text = "INSERT INTO FICHIERTMP " _
& "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE [NUMERO DE DOSSIER] in ( " _
& "SELECT [NUMERO DE DOSSIER] " _
& "FROM [FICHIER SOCIAL] " _
& "GROUP BY [NUMERO DE DOSSIER] " _
& "HAVING count([NUMERO DE DOSSIER])<>1) ;"
'
- Dans le résultat, il me faut les doublons aussi. - Le champs index n'est pas un index mais juste une copie du champs index de la table A (qui lui est indexé) - La recherhce n'est pas strict mais "Contenant"
Si vous avez une piste en SQL, je suis preneur
Merci de votre aide.
PS :Maintenant que je suis plus devant la machine je me pose la question si je dois pas lier TableB/Champs_1 aux 3 Champs de la Table A.
-- « le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun) C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
SQL_Text = "INSERT INTO FICHIERTMP " _ & "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _ & "FROM [FICHIER SOCIAL] " _ & "WHERE [NUMERO DE DOSSIER] in ( " _ & "SELECT [NUMERO DE DOSSIER] " _ & "FROM [FICHIER SOCIAL] " _ & "GROUP BY [NUMERO DE DOSSIER] " _ & "HAVING count([NUMERO DE DOSSIER])<>1) ;" '
DoCmd.RunSQL SQL_Text
La Norme Française c'est pas le FN
On Tue, 28 Jul 2015 19:04:57 +0200, db wrote:
Le 28/07/2015 18:20, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données. Résultat d'une requête basé sur Table B Champs_1: Index Champs_1 Champs_2 Champs_3 1 AA1 AA3 AA6 (<--AA3) 2 BB3 AA7 AA34 (<--AA3) 3 EE5 RET2 YPO8 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 6 YZA5 EEE5 EEE6 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 4 RET3 YY2 YP5 (<--RET)
Bonsoir,
Quelque chose comme :
SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs1 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs2 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs3 like "*" & tB.champs1 & "*"
db
Merci, j'ai essayé (en essayent d'adapter) mais avec les subtilitées de "inner join" j'ai pas réussi. J'ai droit à un joli message de Access mais il est pas très locace.
Par contre ça m'a inspiré pour ça qui fonctionne :
SELECT Table1.Champs1, Table1.Champs2, Table1.Champs3 FROM Table1, Table2 WHERE (((Table1.Champs1) Like '*' & Table2.Liste1 & "*")) Or (((Table1.Champs2) Like '*' & Table2.Liste1 & "*")) Or (((Table1.Champs3) Like '*' & Table2.Liste1 & "*"));
Par contre, je sais pas si c'est normal, mais j'ai mis ça dans une requete, et ça prend des plombes. J'ai 2 tables de près de 200.000 lignes pour la table A et 100.000 pour la Table B !!!
Je me doute bien que ça fait du monde, mais le problème c'est que pas moyen de mettre un progress bar. Je vais poser la question dans un nouveau thread.
-- « le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun) C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
On Tue, 28 Jul 2015 19:04:57 +0200, db <blue_moon_frXX@hotmail.com>
wrote:
Le 28/07/2015 18:20, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données.
Résultat d'une requête basé sur Table B Champs_1:
Index Champs_1 Champs_2 Champs_3
1 AA1 AA3 AA6 (<--AA3)
2 BB3 AA7 AA34 (<--AA3)
3 EE5 RET2 YPO8 (<--EE5)
3 EE5 RET2 YPO8 (<--RET)
6 YZA5 EEE5 EEE6 (<--EE5)
3 EE5 RET2 YPO8 (<--RET)
4 RET3 YY2 YP5 (<--RET)
Bonsoir,
Quelque chose comme :
SELECT index, tA.champs1, tA.champs2, tA.champs3
from tB inner join tA on tA.champs1 like "*" & tB.champs1 & "*"
union all
SELECT index, tA.champs1, tA.champs2, tA.champs3
from tB inner join tA on tA.champs2 like "*" & tB.champs1 & "*"
union all
SELECT index, tA.champs1, tA.champs2, tA.champs3
from tB inner join tA on tA.champs3 like "*" & tB.champs1 & "*"
db
Merci, j'ai essayé (en essayent d'adapter) mais avec les subtilitées
de "inner join" j'ai pas réussi. J'ai droit à un joli message de
Access mais il est pas très locace.
Par contre ça m'a inspiré pour ça qui fonctionne :
SELECT Table1.Champs1, Table1.Champs2, Table1.Champs3
FROM Table1, Table2
WHERE (((Table1.Champs1) Like '*' & Table2.Liste1 & "*")) Or
(((Table1.Champs2) Like '*' & Table2.Liste1 & "*")) Or
(((Table1.Champs3) Like '*' & Table2.Liste1 & "*"));
Par contre, je sais pas si c'est normal, mais j'ai mis ça dans une
requete, et ça prend des plombes. J'ai 2 tables de près de 200.000
lignes pour la table A et 100.000 pour la Table B !!!
Je me doute bien que ça fait du monde, mais le problème c'est que pas
moyen de mettre un progress bar.
Je vais poser la question dans un nouveau thread.
--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
Le 28/07/2015 18:20, La Norme Française c'est pas le FN a écrit :
Bonjour,
je me casse la tête pour trover un moyen d'extraire des données. Résultat d'une requête basé sur Table B Champs_1: Index Champs_1 Champs_2 Champs_3 1 AA1 AA3 AA6 (<--AA3) 2 BB3 AA7 AA34 (<--AA3) 3 EE5 RET2 YPO8 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 6 YZA5 EEE5 EEE6 (<--EE5) 3 EE5 RET2 YPO8 (<--RET) 4 RET3 YY2 YP5 (<--RET)
Bonsoir,
Quelque chose comme :
SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs1 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs2 like "*" & tB.champs1 & "*" union all SELECT index, tA.champs1, tA.champs2, tA.champs3 from tB inner join tA on tA.champs3 like "*" & tB.champs1 & "*"
db
Merci, j'ai essayé (en essayent d'adapter) mais avec les subtilitées de "inner join" j'ai pas réussi. J'ai droit à un joli message de Access mais il est pas très locace.
Par contre ça m'a inspiré pour ça qui fonctionne :
SELECT Table1.Champs1, Table1.Champs2, Table1.Champs3 FROM Table1, Table2 WHERE (((Table1.Champs1) Like '*' & Table2.Liste1 & "*")) Or (((Table1.Champs2) Like '*' & Table2.Liste1 & "*")) Or (((Table1.Champs3) Like '*' & Table2.Liste1 & "*"));
Par contre, je sais pas si c'est normal, mais j'ai mis ça dans une requete, et ça prend des plombes. J'ai 2 tables de près de 200.000 lignes pour la table A et 100.000 pour la Table B !!!
Je me doute bien que ça fait du monde, mais le problème c'est que pas moyen de mettre un progress bar. Je vais poser la question dans un nouveau thread.
-- « le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun) C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
La Norme Française c'est pas le FN
On Wed, 29 Jul 2015 04:45:56 -0700 (PDT), Jose Muller wrote:
SQL_Text = "INSERT INTO FICHIERTMP " _ & "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _ & "FROM [FICHIER SOCIAL] " _ & "WHERE [NUMERO DE DOSSIER] in ( " _ & "SELECT [NUMERO DE DOSSIER] " _ & "FROM [FICHIER SOCIAL] " _ & "GROUP BY [NUMERO DE DOSSIER] " _ & "HAVING count([NUMERO DE DOSSIER])<>1) ;" '
DoCmd.RunSQL SQL_Text
Ok, merci, je vais tester demais.
Pour info, j'ai essayé ça et ça met des plombes (voir message précédent)
Il y a un paquet de données à traiter et je n'ai jamais eu besoin d'optimiser
J'ai essayé de mettre un progressbar pour au moins afficher l'avancement, mais ça ne fonctionne pas.
J'ai placé dans un formulaire un bouton et un activeX progressbar mais en faisant du pas à pas avec le débugger ça moulinne grave sans me rendre la mains pendant au moins une heure quand ça en vient à cette ligne (Même CTRL+pause ne fonctionne pas) :
MaRequete = "SELECT Table1.Champs1, Table1.Champs2, Table1.Champs3 FROM Table1, Table2 WHERE (((Table1.Champs1) Like """"'*'"""" & Table2.Liste1 & """"*"""")) Or (((Table1.Champs2) Like """"'*'"""" & Table2.Liste1 & """"*"""")) Or (((Table1.Champs3) Like """"'*'"""" & Table2.Liste1 & """"*""""));"
Pour info, je viens de rajouter les " à l'instant, j'en ai peut être mis de trop mais le code que j'ai fais ce matin est bon dans le VBA.
-- « le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun) C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
On Wed, 29 Jul 2015 04:45:56 -0700 (PDT), Jose Muller
<papyzoucam@gmail.com> wrote:
SQL_Text = "INSERT INTO FICHIERTMP " _
& "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE [NUMERO DE DOSSIER] in ( " _
& "SELECT [NUMERO DE DOSSIER] " _
& "FROM [FICHIER SOCIAL] " _
& "GROUP BY [NUMERO DE DOSSIER] " _
& "HAVING count([NUMERO DE DOSSIER])<>1) ;"
'
DoCmd.RunSQL SQL_Text
Ok, merci, je vais tester demais.
Pour info, j'ai essayé ça et ça met des plombes (voir message
précédent)
Il y a un paquet de données à traiter et je n'ai jamais eu besoin
d'optimiser
J'ai essayé de mettre un progressbar pour au moins afficher
l'avancement, mais ça ne fonctionne pas.
J'ai placé dans un formulaire un bouton et un activeX progressbar mais
en faisant du pas à pas avec le débugger ça moulinne grave sans me
rendre la mains pendant au moins une heure quand ça en vient à cette
ligne (Même CTRL+pause ne fonctionne pas) :
MaRequete = "SELECT Table1.Champs1, Table1.Champs2, Table1.Champs3
FROM Table1, Table2
WHERE (((Table1.Champs1) Like """"'*'"""" & Table2.Liste1 &
""""*"""")) Or (((Table1.Champs2) Like """"'*'"""" & Table2.Liste1 &
""""*"""")) Or (((Table1.Champs3) Like """"'*'"""" & Table2.Liste1 &
""""*""""));"
Pour info, je viens de rajouter les " à l'instant, j'en ai peut être
mis de trop mais le code que j'ai fais ce matin est bon dans le VBA.
--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
On Wed, 29 Jul 2015 04:45:56 -0700 (PDT), Jose Muller wrote:
SQL_Text = "INSERT INTO FICHIERTMP " _ & "SELECT Index , [NUMERO DE DOSSIER] , [NOM DU CHEF] " _ & "FROM [FICHIER SOCIAL] " _ & "WHERE [NUMERO DE DOSSIER] in ( " _ & "SELECT [NUMERO DE DOSSIER] " _ & "FROM [FICHIER SOCIAL] " _ & "GROUP BY [NUMERO DE DOSSIER] " _ & "HAVING count([NUMERO DE DOSSIER])<>1) ;" '
DoCmd.RunSQL SQL_Text
Ok, merci, je vais tester demais.
Pour info, j'ai essayé ça et ça met des plombes (voir message précédent)
Il y a un paquet de données à traiter et je n'ai jamais eu besoin d'optimiser
J'ai essayé de mettre un progressbar pour au moins afficher l'avancement, mais ça ne fonctionne pas.
J'ai placé dans un formulaire un bouton et un activeX progressbar mais en faisant du pas à pas avec le débugger ça moulinne grave sans me rendre la mains pendant au moins une heure quand ça en vient à cette ligne (Même CTRL+pause ne fonctionne pas) :
MaRequete = "SELECT Table1.Champs1, Table1.Champs2, Table1.Champs3 FROM Table1, Table2 WHERE (((Table1.Champs1) Like """"'*'"""" & Table2.Liste1 & """"*"""")) Or (((Table1.Champs2) Like """"'*'"""" & Table2.Liste1 & """"*"""")) Or (((Table1.Champs3) Like """"'*'"""" & Table2.Liste1 & """"*""""));"
Pour info, je viens de rajouter les " à l'instant, j'en ai peut être mis de trop mais le code que j'ai fais ce matin est bon dans le VBA.
-- « le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun) C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme