Accueil > Forum > > > > Comment supprimer doublons s/ inner join
Comment supprimer doublons s/ inner join
mardi 12 août 2008 à 13:03:34 |
Comment supprimer doublons s/ inner join

810mcu
|
Bonjour à tous, Base Access2000 + D6 + TADOquery En exécutant une recherche avec ce qui suit SELECT GRUME_H_NIOKI_.*, HIST_GRUME_H_NIOKI_.* FROM GRUME_H_NIOKI_ inner JOIN HIST_GRUME_H_NIOKI_ ON GRUME_H_NIOKI_.ID_GRUME_H = HIST_GRUME_H_NIOKI_.ID_GRUME_H Where GRUME_H_NIOKI_.n_abat Like 458 Ok il le fait, mais alors avec autant de doublons que des registres qui se trouvent ds la table HIST_GRUME_H_NIOKI_ Qq sait comment faire pour enlever tous ces doublons, SVP. Merci 810mcu
|
|
mardi 12 août 2008 à 13:32:48 |
Re : Comment supprimer doublons s/ inner join

810mcu
|
Tj moi,
pour mieux comprendre le sujet
Table1
GRUME_H_NIOKI_
Champs
ID_GRUME_H,
N_ABAT,
...
Table2
HIST_GRUME_H_NIOKI_
Champs
ID_HIST_GRUNE_H,
ID_GRUME_H,
POSITION,
DATA_BE
...
la liaison GRUME_H_NIOKI_.ID_GRUME_H = HIST_GRUME_H_NIOKI_.ID_GRUME_H
merci a vs tous
|
|
mardi 12 août 2008 à 14:44:25 |
Re : Comment supprimer doublons s/ inner join

casy
|
Comprend pas bien ton problème. Avec INNER JOIN, tu ne dois normalement avoir que les enregistrements des 2 tables qui sont liés entre-eux. Si tu as des doublons c'est qu'ils sont surrement en doublons dans les tables. Au pire essaye avec un SELECT DISTINCT ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE # [ Lien ]
|
|
mardi 12 août 2008 à 18:45:27 |
Re : Comment supprimer doublons s/ inner join

810mcu
|
Salut casy,
SELECT DISTINCT, ne passeras pas a cause de (SELECT GRUME_H_NIOKI_.*, HIST_GRUME_H_NIOKI_.* )
tout en sachant que
table1 GRUME_H_NIOKI_ n’as que 1 registre avec
Champs
ID_GRUME_H,
N_ABAT,
...
et que
table2 HIST_GRUME_H_NIOKI_ elle une multitude de registre avec ID_GRUME_H,
Champs
ID_HIST_GRUNE_H,
ID_GRUME_H,
POSITION,
DATA_BE
...
1 - l’idée est de listé (DBGrid, query) le seul registre de la
table GRUME_H_NIOKI_(Table1)
du champ N_ABAT,
via la procédure de recherche (Where GRUME_H_NIOKI_.n_abat Like 458)
2 - mais aussi de pouvoir faire des recherches sur des champs de la table HIST_GRUME_H_NIOKI_ (Table2)
en réinitialisant la fonction
tout en gardent l’affichage stand art
(l’idée est de listé (DBGrid, query) le seul registre de la )
au final
query = champs Table1 + Table2
possibilité de recherche dans tous les champs des 2 tables et
faire en sorte de n’afficher que celui de la table1 (ou il n’y as pas de possibilité de doublons)
je pense que c’est un peut plus clair
Merci
|
|
mardi 12 août 2008 à 19:05:31 |
Re : Comment supprimer doublons s/ inner join

casy
|
Donc si je comprend bien, une requette avec le critère de sélection ne renverra systématiquement qu'un seul enregistrement sur la table 1. Par contre, sur la table 2, tu peux avoir multitude d'enregistrements liés à l'unique de la table 1. A partir du moment ou tu renvoie des champs de la table 2, ta requette globale avec jointure te renverra donc autant de résultats que tu aura d'enregistrements liés dans la table 2 avec à chaque fois, pour les champs de a table 1, les valeurs dupliquées corresponds à l'unique enregistrement. Ceci est le fonctionnement même de la jointure et est parfaitement logique. Il n'y a donc pas de doublons (sauf si tu en as dans la table 2) Peut-etre faut-il que tu rajoute des critères de sélection dans le where concernant la table 2 Ou alors tu ne renvoie que les champs de la table 1 avec à ce moment là un SELECT DISTINCT et tu ne devrais avoir qu'un seul résultat dans ce cas. ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE # [ Lien ]
|
|
mardi 12 août 2008 à 19:29:11 |
Re : Comment supprimer doublons s/ inner join

810mcu
|
et bien j’ai déjà essayé cela aussi
SELECT GRUME_H_NIOKI_.*, HIST_GRUME_H_NIOKI_.*
FROM GRUME_H_NIOKI_
inner JOIN HIST_GRUME_H_NIOKI_
ON GRUME_H_NIOKI_.ID_GRUME_H = HIST_GRUME_H_NIOKI_.ID_GRUME_H
where
HIST_GRUME_H_NIOKI_.ID_GRUME_H = GRUME_H_NIOKI_.ID_GRUME_H
and
GRUME_H_NIOKI_.n_abat
Like 460
autant de doublons que de registre ds la table2
meme que j'ai aussi renversé
where
GRUME_H_NIOKI_.ID_GRUME_H = HIST_GRUME_H_NIOKI_.ID_GRUME_H
et rien a faire...!!!
|
|
mardi 12 août 2008 à 19:39:59 |
Re : Comment supprimer doublons s/ inner join

casy
|
Oui, mais c'est normal. La condition que tu as ajouter dans le where ne sert à rien puisque c'est celle de la jointure et c'est cette dernière qui l'assure déjà. Donc ta requette maintenant est identique à la précédente. Tel que tu pose ton problème, c'est le fonctionnement normal de la jointure que tu obtiens. Et dans ce sens là, il n'y a pas de doublons. Si tu as trop de résultats, il faut que tu filtre les enregistrements de la table 2 sur d'autres critères (pas l'id de ta jointure, mais d'autres colonnes de ta table 2) ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE # [ Lien ]
|
|
jeudi 14 août 2008 à 00:44:50 |
Re : Comment supprimer doublons s/ inner join

810mcu
|
Tu as tout a fait raison Casy,
ma Table2 avait qq problèmes, je me suis rendu compte…
Des fois on focalise sur qq chose et le problème est ailleurs
2eme volet, là très franchement ne n’est aucune idée, et je ne sais pas si cella est possible de le faire via SQL(query) !!!
J’ai un peut compléter mon query, que voici
[CODE]SELECT GRUME_H_NIOKI_.ID_GRUME_H,
GRUME_H_NIOKI_.N_ABAT,
GRUME_H_NIOKI_.L_ABAT,
GRUME_H_NIOKI_.ESSENCE,
GRUME_H_NIOKI_.D_SAVE,
GRUME_H_NIOKI_.B_SAVE,
GRUME_H_NIOKI_.CORRESPOND,
GRUME_H_NIOKI_.PERMIS,
GRUME_H_NIOKI_.CHANTIER,
GRUME_H_NIOKI_.N_EXPORT,
Count(HIST_GRUME_H_NIOKI_.ID_HIST_GRUNE_H) AS Nombre FROM GRUME_H_NIOKI_
INNER JOIN HIST_GRUME_H_NIOKI_ ON GRUME_H_NIOKI_.ID_GRUME_H = HIST_GRUME_H_NIOKI_.ID_GRUME_H
Where
HIST_GRUME_H_NIOKI_.POSITION
Like 'GARE'
GROUP BY GRUME_H_NIOKI_.ID_GRUME_H,
GRUME_H_NIOKI_.N_ABAT,
GRUME_H_NIOKI_.L_ABAT,
GRUME_H_NIOKI_.ESSENCE,
GRUME_H_NIOKI_.D_SAVE,
GRUME_H_NIOKI_.B_SAVE,
GRUME_H_NIOKI_.CORRESPOND,
GRUME_H_NIOKI_.PERMIS,
GRUME_H_NIOKI_.CHANTIER,
GRUME_H_NIOKI_.N_EXPORT[/CODE]
Jusque là ok exécution parfaite, je me retrouve avec
1 ligne Table1
et n lignes Table2
Est-ce possible tj avec le même query, parcourir tous les lignes Table1 d’aller a la dernière ligne de la Table2(correspondante ligne Table1) est procéder a la vérification de ces données,
[CODE]Where
HIST_GRUME_H_NIOKI_.POSITION
Like 'GARE'[/CODE]
Merci...,
|
|
jeudi 14 août 2008 à 10:10:05 |
Re : Comment supprimer doublons s/ inner join

810mcu
|
Bonjour,
Oui avec une boucle ( while ou for) cela serais possible, oui boulot d'un programme.
Mais d’un autre cote cela serait aussi possible via un (query, SQL) ???
Quelque chose du genre
Qu'appelles-tu 'vérification de ces données' ?
-Table1 GRUME_H_NIOKI_.ID_GRUME_H,
--Table2 sélectionne les lignes avec ID_GRUME_H
---Va a la dernière ligne est vérifie si celle si
----(HIST_GRUME_H_NIOKI_.POSITION égal 'GARE')
-----Si oui le query le garde
-----Si non le query le rejette
-Suivant...
|
|
dimanche 17 août 2008 à 21:47:08 |
Re : Comment supprimer doublons s/ inner join

casy
|
"...dernière ligne de la Table2..."
Le terme 'dernière ligne' ne veut rien dire en terme de base de données En fait il faut que tu précise dans ta requette un ordre de tri (ORDER BY) sur un ou plusieurs champs (une date par exemple) pour pouvoir ensuite parler effectivement de première ou dernière ligne.
Ensuite si tu tri ton résultat selon un ordre, et que tu veux la dernière ligne, tu peux tout aussi bien trier dans l'ordre inverse et vouloir donc par conséquent la première ligne. Dans cette hypothèse, tu peux faire en sorte avec une requette style SELECT TOP 1 de ne retourner alors que le tout premier résultat.
Donc faire une requette SELECT * ... ORDER BY ... de sorte à ce que la ligne qui t'interresse soit retournée en premier. Modifier ta requette en SELECT TOP1 * ... ORDER BY, pour ne retourner finalement que cette ligne qui t'interresse.
"...parcourir tous les lignes Table1 d?aller a la dernière ligne de la Table2(correspondante ligne Table1)..." Oui effectivement avec une boucle. Il faut faire une première requette sur la table 1, puis avec une boucle sur chacun des résultats de la première requette, faire la seconde comme je viens de te l'expliquer.
Le faire en une seule requette ? Je dirais qu'à priori cela doit etre possible, mais un peu plus compliquer. Je ne peux pas te donner de solutions comme ça. Il me faudrait faire des tests au préalable et je n'ai pas de données sous la main.
L'idée serait de remplacer, je pense, dans la jointure, la table 2 par le résultat de la requette sur cette table.
---- Sevyc64 (alias Casy) ----
|
|
Cette discussion est classée dans : doublons, inner, hist, grume, nioki
Répondre à ce message
Sujets en rapport avec ce message
éléiminatio des doublons : instruction delete avec jointure [ par overider ]
Bonjour à tousje souhaite eliminer les doublons dans un table.J'ai d'abord rechercher les doublons (merci a kechia pour sa requette) puis je les ai st
probleme de champ ntext avec group by [ par nashouille ]
Bonjour a tousdans une requete avec une sous requete d'agregation, l'extraction d'un champ ntext est impossible.sql server me retourne ce messageServe
Doublons [ par piep14 ]
Bonjour, j'aimerais savoir s'il est possible d'extraire directement dans la base de données tous les doublons ! Merci le forum
pb requette doublons [ par skiso ]
cette requette me sort des doublons :SELECT * FROM agences a inner join annonces b on a.AGENCE = b.AGENCE WHERE a.commune='$com'comment faire pour ne
Suppression doublons... [ par billut ]
salut a tous, voila je vous explique vite faitca fais quelques temps que je galere sur une requete toute simple, mais la jen peux plus, jai cherché su
Requete sans doublons [ par aztcaLISS ]
Salut, Je voudrais faire une requete sur ma base de données. J'ai une Table qui contient 3 champs: Test1, Test2, Test3.Je voudrais obtenir une nouve
affichage doublons [ par EFFACEUR ]
Je voudrais afficher tt les lignes ayant un doublons pour pouvoir verifier lequel supprimerSELECT nom as valeur,COUNT(*) FROM table GROUP BY valeur HA
Doublons dans INNER JOIN [ par leviz ]
Hello! Voila mon problème : J'ai deux tables : TblCollectList et TblCollectNotes</fo
INNER JOIN sur 3 tables [ par citt ]
Bonjour, Je fait une requete SQL sur 4 tables pour avoir le nombre d'element en tous Ex : table : ecrou (environ 200 enreg) table : ecrou_petit (envir
Grouper les doublons [ par pkmnlio ]
Bonjour,Je suis entrain de develloper un site en ASP, et j'ai un petit probleme avec une de mes requetes de selection.J'ai une liste de Dvds dans une
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|