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 :

SQL valeurs non présentes


Sujet :

Développement SQL Server

  1. #1
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    Par défaut SQL valeurs non présentes
    Bonjour,

    Je cherche sur des MS SQL Serveur 2008 et 2008 R2 à extraire des "manques" pour un champ integer.

    Par exemple, pour la table Matable, avec les champs f1 (int) et f2(int) ou f1 est un primary.
    f1, f2
    1000,247
    1001,248
    1002,250
    1003,251
    1004,254
    1005,255
    1006,257

    Je cherche les valeurs manquantes 249,252,253,256 via une requête SQL plutôt que par programme en sachant que j'ai plusieurs millions de lignes dans la table concernée.

    Je rêve ou c'est possible ?

    Merci pour votre aide.
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    247,248,249.

    Est ce une simple valeur ou est une FK?

    Si c'est une FK vosu avez une table listant toutes les valeurs la requête est donc triviale...

    Sinon:
    Avec une table des valeurs...

    Créez une table des entiers puis faites une WHERE NOT EXISTS...

    Mais ça va être coûteux!

    A tester..;
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  3. #3
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    Par défaut
    En voilà une idée, je pense qu'elle devrait me permettre de m'en sortir en créant une petite table de 10000 ou plus, de valeurs contigues. A tester pour la dimension, puis faire cette comparaison entre la table "Matable" et la table de référence.

    Je ne connaissais pas NOT EXISTS et je ne sais pas ce que veux dire FK.
    Bref me reste plus qu'a trouver une façon élégante de créer ma table de référence.

    Je cherche dans ce sens,

    Merci
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

  4. #4
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    FK=Foreign Key...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  5. #5
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    Par défaut
    Citation Envoyé par iberserk Voir le message
    FK=Foreign Key...
    Merci pour cette info complémentaire, je n'avais plus les yeux en face des trous...

    Pour l'idée de la table de comparaison, j'y suis arrivé, grâce à ton conseil, mais sans arriver à utiliser NOT EXISTS.
    Juste une table remplie avec les valeurs que je dois trouver dans Matable/f2 et un left join lorsque le champ f1 est à null, donc absent.

    C'est un peu plus complexe que ça au final, car j'ai des séquences qui se répète chaque jour et j'ai donc un select qui tien compte de date...

    En tout cas merci
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Un EXCEPT sera probablement plus performant qu'une jointure externe.

  7. #7
    Membre actif
    Avatar de castorcharly
    Homme Profil pro
    Chef de projet
    Inscrit en
    Février 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2009
    Messages : 416
    Points : 299
    Points
    299
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Un EXCEPT sera probablement plus performant qu'une jointure externe.
    Bonjour,

    Je vais regarder ce que celà donne,

    merci

    Pour que mes essais soient valident, il faut que je le fasse sur une base avec un volume conséquent, la mienne, de test, n'est pas assez volumineuse pour voir une différence de performance.
    “La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.” Antoine de Saint-Exupéry.

    D1..D7-2005,2006-Xe2 Ent-XE7 archi-MsSql 2005..2008 & R2, FB 1.5..2.5.x.x -Win10,Win7/64-Xp-
    _____________________________________________________

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

Discussions similaires

  1. recherche de valeur non présentes dans une autre table
    Par omelhor dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/02/2015, 10h51
  2. [XL-2010] Comparer valeurs non présentes entre deux colonnes
    Par Ysae68 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/08/2014, 19h59
  3. Comparer 2 tableaux et trouver la valeur non présente
    Par bentor22 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/03/2013, 17h37
  4. compter des valeurs non présentes
    Par tatouee dans le forum SQL
    Réponses: 2
    Dernier message: 10/11/2009, 13h12
  5. Réponses: 3
    Dernier message: 24/05/2005, 08h19

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