IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Identifier des lignes qui ont une donnée commune


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Identifier des lignes qui ont une donnée commune
    Bonjour,
    Nouveau sur le site et débutant en Access
    Je cherche à faire la chose suivante

    Table de départ :
    TableWL
    N° PinTo PinFrom
    3 A EE
    4 EE RR
    5 TT RR
    6 TT B
    7 D CC
    8 CC FF
    9 GG FF
    10 GG E


    Ce que je souhaite en sortie :
    N° PinTo PinFrom Groupe
    3 A EE 1
    4 EE RR 1
    5 TT RR 1
    6 TT B 1
    7 D CC 2
    8 CC FF 2
    9 GG FF 2
    10 GG E 2

    Soit ajouter une colonne pour regrouper les lignes qui ont un point commun entre les colonnes PinTo et PinFrom et ainsi créer des groupe de manière automatique

    merci de votre aide

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Au vu de l'exemple j'ai pas bien compris quelle était la règle de regroupement

    Il y a 10 lignes avant et 10 après donc apparemment ça ne regroupe pas mais ça compte, donc une solution pourrait être du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select *, dcount("*", "TableWL", "Pinfrom='" & pinto & "' ") + dcount("*", "TableWL", "Pinto='" & pinfrom & "' ") + 1 as groupe from TableWL
    Attention à bien distinguer ' et "

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour, et merci

    Le point commun entre les lignes

    TableWL
    N° PinTo PinFrom
    3 A EE
    4 EE RR
    5 TT RR
    6 TT B
    7 D CC
    8 CC FF
    9 GG FF
    10 GG E

    PinFrom de Ligne 3 = PinTo de ligne 4
    PinFrom de Ligne 4 = PinFrom de Ligne 5
    PinTo de ligne 5 = PinTo de ligne 6

    Je souhaite donc que dans la colonne Groupe les lignes 3, 4, 5 et 6 est le même numéro et différent du numéro qui sera dans la colonne Groupe pour les lignes 7, 8, 9, 10 car pas de point commun entre les lignes 3, 4, 5, 6 et les lignes 7, 8, 9, 10

    Ce que vous m’avez envoyé me génère ceci :

    TableWL Requête Reponse 01
    groupe N° PinTo PinFrom
    2 3 A EE
    2 4 EE RR
    1 5 TT RR
    1 6 TT B
    2 7 D CC
    2 8 CC FF
    1 9 GG FF
    1 10 GG E

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Cette fois j'y compris
    Je ne vois pas à quoi ça peut servir mais c'est plutot compliqué... Il n'y en a jamais un qui peut être dans plusieurs groupes ?

    Il faudrait faire ça par programmation récursive parce que chaque fois que le groupe a un nouvel élément ça ouvre potentiellement le groupe à d'autres...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Non il n’y en a jamais un qui peut être ds plusieurs groupe.
    Sa me sert à générer des programme de test filaire, le fichier de départ est issu d’un logiciel de schéma électrique.
    Il y’a 4 ans j’ai fait faire une macro VBA pour générer mes fichiers, tous était fait sous Excel les tables y compris.
    Pb c’est qu’aujourd’hui j’ai des fichiers table de départ de 15000 lignes et que la macro me prend 8 heures à l’exécution. C’est pourquoi Je pense tous passer sous Access.

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour,

    Il me semble, si j'ai bien compris, que le besoin n'est pas très bien posé (sauf ton respect, manfre).

    Avec les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    N° PinTo PinFrom
    3  A     EE
    4  EE    RR
    5  TT    RR
    6  TT    B
    Tu dis :
    Je souhaite donc que dans la colonne Groupe les lignes 3, 4, 5 et 6 est le même numéro
    Or, le 3 et le 6 n'ont aucun "point commun", comme tu le dis. Il me semble comprendre que tu souhaites voir 3 et 6 dans le même groupe car, 3 passe à 4 via EE, puis 4 passe à 5 via RR et, enfin, 5 passe à 6 via TT. Et, comme le "chemin" s'arrête, tu souhaites passer à un autre groupe.

    Mais, peut-être, ai-je mal compris.

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    En VBA access ça devrait pas mettre des heures
    Petit algorithme :

    groupe=0
    1. s'il y a encore des lignes non groupées groupe=groupe+1
    2. J'affecte à groupe une ligne non groupée au hasard
    3. Je cherche si des lignes non groupées ont une extrémité commune avec une ligne de groupe
    4. si oui je les mets dans groupe et goto 3, sinon goto 1

    Bon courage

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Pour Richard 35

    C'est bien ça.

    3 passe à 4 via EE, puis 4 passe à 5 via RR et, enfin, 5 passe à 6 via TT

    merci de votre aide

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2012, 16h01
  2. Réponses: 9
    Dernier message: 20/10/2010, 10h57
  3. [XL-2003] supprimer des lignes qui ont les même valeurs
    Par Neptune64 dans le forum Excel
    Réponses: 1
    Dernier message: 09/08/2009, 00h30
  4. Rechercher BD, nom des tables qui ont une colonne "location"
    Par arnaudperfect dans le forum Requêtes
    Réponses: 5
    Dernier message: 22/10/2008, 11h33
  5. SELECT des lignes qui ont exactement 4 valeurs sur la colonne ?
    Par mamiberkof dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/01/2008, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo