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 :

Sélection "contrôlée" de doublons [AC-365]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 41
    Points : 34
    Points
    34
    Par défaut Sélection "contrôlée" de doublons
    Bonjour,


    J'ai une table TPersonnel (Champs: Nom, Prénom, Donnée1, Société, SociétéParent, ...) dans laquelle je peux avoir des doublons (ou triples ou plus) sur le Champ Donnée1.
    En utilisant le Wizard Access, j'obtiens une table avec tous ces doublons dont certains sont "acceptables", du point de vue de la logique de l'application, et d'autres "non acceptables" et devant faire l'objet d'une vérification et correction "manuelles".

    Les doublons Donnée1 "acceptables" sont ceux pour lesquels le Champ Société est égal au Champ SociétéParent d'un autre enregistrement de même Donnée1. Par exemple, sont "acceptables":

    Donnée1 Société SociétéParent
    A543109 OCM
    A543109 PGT OCM
    ou
    B3278 AOJ
    B3278 MTC AOJ
    B3278 VAJ AOJ


    Mais n'est pas "acceptable":
    A788275 MDG
    A788275 SUX CHY


    Quelle requête puis-je créer pour que n'obtenir que les "non acceptables"?

    Je tourne autour de ce problème depuis quelque temps mais ne trouve pas la solution, même en passant par des tables intermédiaires.

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    A mon avis, il y a problème dans l'enregistrement des données. Les valeurs de SociétéParent ne doivent pas être Null.
    Dans ce que tu montres comme n'étant pas acceptable :
    A788275 MDG
    A788275 SUX CHY
    Lequel n'est pas valable, le premier ou le second. Et qu'est-ce que tu fais avec les données après?

    La première approche pour corriger les Null serait de rajouter un champ qui aura la valeur de Société si elle est nulle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SociétéParent_1 : Nz(SociétéParent;Société)
    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Merci.
    Les valeurs de SociétéParent peuvent être nulles: SociétéParent indique, en fait, le propriétaire, dans le cas d'un groupe multi-sociétés, de Société. Dans le cas d'une entreprise isolée, il n'y a donc pas de "parent".

    Je ne sais pas, a priori, quel est l'enregistrement valable dans un doublon "non acceptable". C'est donc pour cela que j'ai besoin de la table des doublons "non acceptables" pour vérifier - "manuellement" - quel champ est incorrect (ce peut être n'importe quel champ de TPersonnel) et corriger dans TPersonnel.

    Je ne sais pas si c'est suffisamment clair.

    .

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    Les valeurs de SociétéParent peuvent être nulles: SociétéParent indique, en fait, le propriétaire, dans le cas d'un groupe multi-sociétés, de Société. Dans le cas d'une entreprise isolée, il n'y a donc pas de "parent".
    Oui, mais avoir un Null ne te permet pas d'aller plus loin dans ta requête. Et une entreprise isolée ne peut elle pas être son propre "Parent". Ce qui permettra de voir que Données1 doit toujours avoir la même société Parent ? Non ?

    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Re-,

    Et une entreprise isolée ne peut elle pas être son propre "Parent". Ce qui permettra de voir que Données1 doit toujours avoir la même société Parent ? Non ?
    Merci.
    C'est effectivement peut-être une voie de solution que je vais explorer; je vais également vérifier que cela ne génère pas d'autres problèmes ailleurs dans l'application.
    Si tout va bien, je mettrais "Résolu".

    .

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Ayant été en déplacement, je n'avais pas eu trop de temps pour tester la solution d'entreprise isolée étant son propre parent.
    Je l'ai maintenant fait mais cela ne résoud pas mon problème.

    Je vais continuer à chercher.

    .

  7. #7
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour,
    Quelle requête puis-je créer pour que n'obtenir que les "non acceptables"?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TPersonnel.Donnée1, TPersonnel.Société, TPersonnel.SociétéParent
    FROM TPersonnel
    WHERE (((TPersonnel.Donnée1) In (SELECT [R2].[Donnée1] FROM (SELECT [TPersonnel].[Donnée1] FROM [TPersonnel] WHERE ((([TPersonnel].[SociétéParent]) Not In (SELECT [TPersonnel].[Société] FROM [TPersonnel] GROUP BY [TPersonnel].[Société])))) AS R2)));
    Un travail qui plait est à moitié fait.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Octobre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Tortille Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TPersonnel.Donnée1, TPersonnel.Société, TPersonnel.SociétéParent
    FROM TPersonnel
    WHERE (((TPersonnel.Donnée1) In (SELECT [R2].[Donnée1] FROM (SELECT [TPersonnel].[Donnée1] FROM [TPersonnel] WHERE ((([TPersonnel].[SociétéParent]) Not In (SELECT [TPersonnel].[Société] FROM [TPersonnel] GROUP BY [TPersonnel].[Société])))) AS R2)));

    Merci beaucoup. Cela répond à ma question.

    Bonne journée

    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cadre de sélection sur contrôle dynamique
    Par Thiby dans le forum MFC
    Réponses: 3
    Dernier message: 17/06/2009, 20h51
  2. Quotes dans TFilenameEdit (RXLib)
    Par AnnSo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/01/2003, 21h26

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