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

Langage SQL Discussion :

Comparer des informations dans une même table


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club Avatar de foscor
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Comparer des informations dans une même table
    Bonjour,

    Je remercie d'avance ce qui s'intéresseront à ce topic

    Alors voilà , je voudrai comparer des informations qui se trouve dans dans la table si dessous :

    Nom : sqlIOLIST.jpg
Affichages : 145
Taille : 58,4 Ko

    Pour vous expliquer brièvement, cette table contient les informations de plusieurs fichier Excel :

    - id = numéro d'un projet
    - Révision = numéro de la révision du projet
    - Colum = le nom de la colone
    - Num_unique = numéro de la ligne
    - Value = Valeur dans la cellule

    (Catégorie et date_projet n'ont pas d'importance pour cette problématique).

    Le but étant de comparer et de connaitre les différences entre 2 révisions du même projet (qui ont le même id).

    Les informations que je souhaiterai retirer avec des requêtes SQL sont les suivantes :

    - Pour un même Num_unique et un même Colum y a t'il des valeurs qui ont changé.
    - Y a t'il un Num_unique qui à été supprimé ou Ajouté (Si oui le(s) quel(s)).
    - Y a t'il une Colum qui a été supprimé ou Ajouté (Si oui le(s) quel(s)).

    Je sais qu'il existe des outils de comparaisons en SQL mais je n'ai réussi que à comparer 2 tables différentes.

    J'avais fais un algo en Java pour repérer les différences ci dessus mais il est trop lourd et je souhaiterai optimiser mon programme à l'aide de requêtes SQL (que je maîtrise mal ).

    Voili voilou !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 261
    Points : 12 934
    Points
    12 934
    Par défaut
    Bonjour,
    Qu'est-ce qui permet de savoir qu'un "num_unique" ou un "column" a été ajouté ou supprimé ?

    Pour les valeurs qui ont changé il suffit de faire une jointure de la table sur elle-même (avec 2 alias différents) sur "num_unique" et "column", puis de comparer les autres colonnes.

    Tatayo.

  3. #3
    Futur Membre du Club Avatar de foscor
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Qu'est-ce qui permet de savoir qu'un "num_unique" ou un "column" a été ajouté ou supprimé ?
    Pour vérifier ça , je pensais faire un genre de NOT EXISTS mais j'ai du mal à le manipuler sur ma table

  4. #4
    Futur Membre du Club Avatar de foscor
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    J'ai fini par trouvé la solution sur un autre forum , mais je tenais à faire partager la solution ici au cas où quelqu'un autre aurai une problématique similaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SELECT
        V1.id,
        V1.Revision,
        V1.Colum,
        V1.Num_unique,
        V1.Value,
        V2.id,
        V2.Revision,
        V2.Colum,
        V2.Num_unique,
        V2.Value
    FROM
        IOLIST V1
            INNER JOIN IOLIST V2
                ON V1.id = V2.id
                AND V1.Colum = V2.Colum
                AND V1.Num_unique = V2.Num_unique
    WHERE
        V1.id = 'projet souhaité'
        AND V1.Revision = 'révision de base'
        AND V2.Revision = 'révision à comparer'
        AND V1.Value <> V2.Value;
    Biz

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 261
    Points : 12 934
    Points
    12 934
    Par défaut
    Bonjour,
    Je ne vois pas trop comment tu peux savoir qu'une information a été supprimée avec cette requête, ou alors je n'ai pas trop compris le fonctionnement de tes tables...

    Tatayo.

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

Discussions similaires

  1. Comparer deux lignes d'une même table dans une bdd
    Par Pierrot33 dans le forum Général Java
    Réponses: 3
    Dernier message: 19/11/2011, 19h04
  2. Réponses: 0
    Dernier message: 14/05/2011, 10h14
  3. Réponses: 2
    Dernier message: 16/05/2008, 14h43
  4. Réponses: 9
    Dernier message: 19/09/2006, 19h27

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