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 :

Recherche des valeurs manquantes [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 89
    Points : 55
    Points
    55
    Par défaut Recherche des valeurs manquantes
    Bonjour

    Dans une table access 2003 j'ai un champ contenant une valeur numérique

    je voudrais trouver toutes les valeurs manquantes entre une valeur mini est une valeur maxi .

    par exemple:

    je voudrais avoir la liste des valeurs qui n'exitent pas entre 2000 et 3000.

    mais je ne vois pas comment faire

    merci pour votre aide

    Merocean

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut merocean,

    en somme tu veux une requete qui te renvoie un tableau de valeurs compris entre 2000 et 3000 en dehors de ceux déjà présent dans le champ de la table?
    soit: 1000 enregistrements - (select count(*) from (select distinct champ from table)) enregistrements ?


  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 89
    Points : 55
    Points
    55
    Par défaut
    bonjour Vodiem,

    c'est cela je cherche les manquants dans une suite , et 2000 et 3000 étant seulement pour l'exemple.

    Merocean

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    il te faut malheureusement avoir la suite dans une table.

    ensuite tu retire de la partie de la suite concernée ceux présent dans la table.
    soit simplement avec un "not in..." soit avec une requete de non correspondance "left join... where..."
    ex:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from suite where (champ between 2000 and 3000) and (champ not in (select champ from latable))


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 89
    Points : 55
    Points
    55
    Par défaut
    Merci

    J'esperais pourvoir me passer d'une table de comparaison,

    dommage

    Merci beaucoup pour ton aide

    Merocean

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    le sql ne permet pas de créer des enregistrements à partir d'enregistrement qui n'ont pas d'existence.

    si tu veux te passer d'une table intermédiaire il te faut faire le traitement en vba.


  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    Une première approche pourrait être du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT (SELECT TOP 1  ID 
            FROM Table1 
            WHERE ID>A1.ID+1 AND ((A1.ID) Between 10 And 25)
            ORDER BY ID)-1 AS [N° Manque]
    FROM [SELECT TOP 1 0 AS ID 
            FROM MSysobjects 
            UNION 
            SELECT ID 
            FROM Table1]. AS A1 LEFT JOIN Table1 AS A2 ON A1.ID+1=A2.ID
    WHERE A2.ID IS NULL
    ORDER BY A1.ID;
    A peaufiner.

    Cordialement.

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut cher ami francishop ,

    je vais te taquiner un peu...
    je trouve cela un peu lourd pour avoir un truc avoisinant à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT A1.ID+1
    FROM Table1 AS A1 LEFT JOIN Table1 AS A2 ON A1.ID+1=A2.ID
    WHERE A2.ID IS NULL AND A1.ID BETWEEN 10 AND 25
    ORDER BY A1.ID;
    plus lisible et qui donne l'ensemble des enregistrements qui succède immédiatement et sont manquant.
    mais s'il manque une plage de valeur successif... là il va falloir nous sortir une autre approche... ;p

    et à peaufiner je crains qu'il ne reste plus grand chose...

    j'admire ta façon tortueuse de résoudre les pb.

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    Je savais que j'allais faire sortir le loup du bois :
    Citation Envoyé par vodiem Voir le message
    mais s'il manque une plage de valeur successif... là il va falloir nous sortir une autre approche... ;p
    et à peaufiner je crains qu'il ne reste plus grand chose...
    j'admire ta façon tortueuse de résoudre les pb.
    Admire l'ami vodiem. Admire!
    Pour une série de deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT C1.ID+1 AS Un, (SELECT TOP 1  ID
            FROM Table1
            WHERE ID>C1.ID+1
            ORDER BY ID)-1 AS Deux
    FROM [SELECT TOP 1 0 AS ID
            FROM MSysobjects
            UNION
            SELECT ID
            FROM Table1]. AS C1 LEFT JOIN Table1 AS C2 ON C1.ID+1=C2.ID
    WHERE C2.ID IS NULL
    ORDER BY C1.ID;
    Tortueux? Si peu!
    Avec ce résultat, on ne peut faire grand chose? --> Exact!

    Cordialement.

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

Discussions similaires

  1. Rechercher les valeurs manquantes
    Par arcane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/04/2009, 18h05
  2. Interpolation linéraire des valeurs manquantes
    Par j_ere_my dans le forum MATLAB
    Réponses: 17
    Dernier message: 27/11/2008, 17h15
  3. Changement des valeurs manquantes NA par 0
    Par fafabzh6 dans le forum R
    Réponses: 3
    Dernier message: 01/04/2008, 17h24
  4. renseigner des valeurs manquantes
    Par mouche dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/05/2007, 12h00
  5. [VBA-E] rechercher des valeurs?
    Par godSP2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2007, 20h55

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