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

SQL Firebird Discussion :

Select plusieurs ligne qu'une fois


Sujet :

SQL Firebird

  1. #1
    Membre du Club
    Select plusieurs ligne qu'une fois
    Bonjour à tous,

    FireBird 3, J'ai dans une table les lignes

    NID Prénom Code P
    1 PAUL 50
    1 JACQUES 50
    2 OLIVIER 13

    Je souhaite appliquer une sélection de façon que les lignes de NID ne se répètent pas

    La requête "Select Distinct NID, CodeP Where CodeP='50'" m'affiche

    NID CodeP
    1 50
    1 50

    Pourquoi cette requête m'affiche 2 lignes de NID = 1


    Merci de votre aide

  2. #2
    Rédacteur

    Vérifiez binairement si votre colonne CodeP n'a pas des valeurs ayant un blanc après le 50

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Rédacteur/Modérateur

    Bonsoir,

    j'ai tenté de reproduire le phénomène
    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
    23
    24
    25
    26
     
    CREATE TABLE TEST
    (
      NID Integer,
      NOM Varchar(20),
      CODEP Varchar(5)
    );
    INSERT INTO TEST (NID, NOM, CODEP)
     VALUES (
    1, 
    'PAUL', 
    '50'
    );
    INSERT INTO TEST (NID, NOM, CODEP)
     VALUES (
    1, 
    'JACQUES', 
    '50'
    );
    INSERT INTO TEST (NID, NOM, CODEP)
     VALUES (
    2, 
    'OLIVIER', 
    '13'
    );
    SELECT DISTINCT NID,CODEP FROM TEST WHERE CPDEP='50'

    je n'obtiens bien qu'une seule ligne de résultat
    1 50
    Je crois que c'est un problème de données je contrôlerai aussi la colonne NID , dans mon cas de test le type est un entier donc impossible d'avoir une erreur mais s'il s'agissait d'un numeric ou d'un décimal ?
    Donc reste quelques inconnues : le type des colonnes !
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  4. #4
    Membre du Club
    Effectivement, je n'ai pas pensé le blanc sur la colonne codeP, le problème venait de là !!!

    Merci pour vos réponses et bonne soirée

  5. #5
    Rédacteur/Modérateur

    Bonjour,

    je trouve ça bizarre que ce soit le blanc le responsable. après tout il y a la clause WHERE CodeP='50'
    ayant fait le test aussi avec une colonne contenant '50 ' (pour JACQUES) j'ai obtenu le même résultat (une seule ligne, la ligne JACQUES n'étant pas prise en compte
    J'en déduit que vous avez déclaré votre colonne CODEP comme une colonne CHAR(x) contrairement à mon test où je la déclare comme VARCHAR(x)
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd