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

Développement SQL Server Discussion :

Comparaisons éléments de deux tables


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut Comparaisons éléments de deux tables
    Bonjour,

    J'aimerai a partir d'une table SQL dans laquelle se trouve un champ "nomFichier" extraire dans une procédure les nom de fichiers un par un afin de les comparer avec d'autre nom contenu dans une autre table. Le probleme est que je ne connais pas bien la structure des procedure et des boucle en SQL et je ne sais pas s'il faut utiliser un indice...

    Merci de bien vouloir m'éclairer avec des petits bout de code

  2. #2
    Membre chevronné Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Par défaut
    Bonjour,

    Pour l'extraction du nom du fichier, on en a déjà parlé ici il me semble.

    Ensuite, surtout pas de boucles !
    En SQL, on raisonne en termes d'ensembles.
    Vous avez un premier ensemble qui contient des noms de fichier et un second qui en contient aussi sans doute.
    SQL Permet d'effectuer des opérations sur ces ensembles afin de les mettre certaines lignes en correspondance, en non correspondance, de faire la différence de deux ensembles, de les ajouter, ...

    Je vous conseille de lire ce document et d'essayer.

    Si vous n'y arrivez pas, vous pourrez expliquer en termes ensemblistes ce que vous voulez faire

    @+

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    En gros si je comprend bien j'ai un ensemble avec le "nomFichier" et un autre avec "nomFichieraComparer" et il faut que je compare les deux.

  4. #4
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    En fait mon problème est que j'aimerai savoir comment faire, a partir d'une chaine de caractère pour comparer cette chaine avec des éléments d'une colonne d'une table SQL.

    Par exemple j'ai un nom de fichier "toto.txt" et une table avec la colonne
    "non" qui contient "toto.txt", "tata.doc", "titi.pdf". J'aimerai comparer toto.txt avec la colonne pour savoir s'il est déjà dedans ou pas.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Par défaut
    Imaginons qu'on a une table nommée "fichier" avec une colonne nommé "nom"

    Si "toto.txt" existe dans cette table ("toto.txt" étant le nom d'un fichier ^^), on affiche "toto.txt existe", sinon, on affiche "raté, toto.txt n'existe pas"

    Je rappelle que la table s'appelle "fichier", et la colonne contenant les noms de fichier s'appelle "nom".
    Donc, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    IF EXISTS (SELECT * FROM fichier WHERE nom = 'toto.txt')
    BEGIN
      PRINT('toto.txt existe')
    END
    ELSE
    BEGIN
       PRINT('raté, toto.txt n''existe pas')
    END
    Remarque: "SELECT *" peut être remplacer par "SELECT nom" ou "SELECT nom_dune_colonne_de_la_table" ou "SELECT COUNT(*)" ou n'importe quoi qui afficherait quelque chose ^^

    PS: la coloration du code a été faite "à la main" xD

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    Ok c'est cool pour la comparaison merci cela fonctionne, j'avais oublié l'existence de EXISTS.

    Maintenant j'aimerai parcourir la table mais élément par élément c'est a dire un peut comme si on faisait une boucle WHILE ou FOR en C qui permettrai de faire un traitement pour chaque ligne de ma table (celle ci contenant une colonne id).

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

Discussions similaires

  1. [MySQL] afficher des éléments de deux tables en fontion d'une requete
    Par vivi21 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/08/2011, 15h55
  2. Comparaison enregistrement de deux tables identiques
    Par geek21 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/07/2009, 18h08
  3. Comparaison champs entre deux tables
    Par Echizen1 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/11/2007, 08h31
  4. Comparaison de structure de deux tables
    Par Ryan Sheckler dans le forum Outils
    Réponses: 7
    Dernier message: 15/02/2006, 22h00
  5. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53

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