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

Bases de données Delphi Discussion :

Remplacer une valeur nulle par la valeur 0 sous Delphi 7 query1 (sql)


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 0
    Points
    0
    Par défaut Remplacer une valeur nulle par la valeur 0 sous Delphi 7 query1 (sql)
    Bonjour,

    Comment remplacer une valeur nulle par la valeur 0 sous Dephi 7 ---->query1 (sql) ?
    Exemple :

    1+2+nul =3
    nul+nul=0
    1+2+3=6

    Merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    si les données sont issues d'une requête SQL, tu peux le faire directement dans la requête avec la fonction COALESCE si ton SGBD la supporte
    COALESCE renvoit la première valeur non nulle rencontrée dans la listes des valeurs passées en paramètre, donc ici, TonChamp, ou sinon 0 s'il vaut nul
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    NON SGBD paratox7 ne la supporte pas TABLE1.COLONE1 + TABLE2.COLONE 2
    1 + 1 = 2
    + 1 = (null)
    1 + = (null)
    -----------------------------------------------------------------------------------------------------------------
    moi je veux
    TABLE1.COLONE1 + TABLE2.COLONE 2
    1 + 1 = 2
    + 1 = 1 (null)
    1 + = 1 (null)
    sous sql du delphi7 (sql builder) (query1)
    MERCI

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    J'ai peur que ça soit impossible avec un SQL aussi simple.

    Solution, passer par une table temporaire qui serait remplie avec les valeurs voulues.

    Pour remplir chaque colonne on peut utiliser par exemple un truc dans le genre de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select id, v1 from test where V1 is not null
    union
    select id, 0 from test where V1 is null V1

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 0
    Points
    0
    Par défaut
    moi je cherche a remplacer une valeur null par 0 et faire ma somme

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Peux-tu nous montrer ton code actuel ? Ça nous aidera à comprendre ce que tu veux faire...

  7. #7
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    Citation Envoyé par redalogiste Voir le message
    moi je cherche a remplacer une valeur null par 0 et faire ma somme
    et moi je veux passer un bon réveillon


    En tant qu'administrateur de données, il serait peut-être bon de passer à un système de données un peu plus moderne ....
    Même sqlite sait faire un coalesce.

  8. #8
    Membre actif
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 105
    Points : 235
    Points
    235
    Par défaut
    Bonsoir,
    Soit par exemple la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    create table TBL1 (
      KEY char(10) not null, 
      INT1 integer,
      INT2 integer,
      INT3 integer
    )
     
    select KEY ,
      case when INT1 is null then 0 else INT1 end INT1 ,
      case when INT2 is null then 0 else INT2 end INT2 ,
      case when INT3 is null then 0 else INT3 end INT3 
    order by KEY ;
    Ca fonctionne sur DB2, Firebird ...
    solilog

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    sur DB2 sans doute mais pas avec Paradox

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Bonjour et meilleurs vœux

    la doc sur le SQL Local du BDE (et donc subséquemment pour Paradox) n'indique aucune possibilité de coalesce

    vous n'avez donc que trois solutions en continuant à utiliser Paradox et BDE
    -1 celle proposée par papy214 avec l'union

    select id, colone1 from table where colone2 is null
    union
    select id, colone2 from table where colone1 is null
    union
    select id,colone1+colone2 from table where colone1 is not null and colone2 is not null



    -2 au niveau de la BDD
    - Faire un update des données de façon à remplacer les nulls par des 0
    UPDATE TABLE SET COLONE1=0 WHERE COLONE1 IS NULL
    UPDATE TABLE SET COLONE2=0 WHERE COLONE2 IS NULL
    pour pouvoir faire ensuite le
    SELECT COLONE1+COLONE2 FROM TABLE
    - et par la suite la structure de la table de façon à ce que les colonnes n'accepte pas le nul

    -3 faire les calculs par programme

    ma préférence allant pour la solution 2, quoique ... mon vrai conseil :
    IL EST PLUS QUE TEMPS DE CHANGER DE SGBD : BDE EST OBSOLETE DEPUIS PLUS DE 10 ANS
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/09/2014, 16h29
  2. [XL-2013] Remplacer une cellule vide par une valeur
    Par Tiagra dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/09/2014, 20h45
  3. Remplacer un résultat nul par une valeur
    Par od.dev dans le forum Requêtes
    Réponses: 9
    Dernier message: 22/03/2010, 16h07
  4. Réponses: 8
    Dernier message: 15/11/2008, 23h14
  5. Remplacement d'une valeur fixe par la valeur d'une cellule
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/04/2008, 09h20

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