Requête SQL - Remplacer NULL

Fermé
FrAnKiBoY - 29 févr. 2008 à 17:09
 FrAnKiBoY - 29 févr. 2008 à 19:51
Bonjour, je recherche une facon de remplacer une valeur null en date.
Bref, mon problème est que je doit vérifier une date entre deux autres mais c'est pour des contrats et il arrive des fois où le contrat n'a pas de date de fin donc il est à null. J'aimerais si c'est possible être capable de faire mon beetween pareil mais avec une date bidon genre 9999-01-01 à place que ma requête me retourne rien car il trouve un null dans la datede fu. Merci

Voici ma requête présentement :

SELECT CONTRAT.NOM_DEPARTEMENT, EMPLOYE.NOM, EMPLOYE.PRENOM, AFF_EMP_CLASS.CODE_CLASSEMENT, BANQUE_VACANCE.VALEUR, SALAIRE.TAUX_HORAIRE
FROM (((EMPLOYE INNER JOIN AFF_EMP_CLASS ON EMPLOYE.NO_EMPLOYE=AFF_EMP_CLASS.NO_EMPLOYE) INNER JOIN BANQUE_VACANCE ON EMPLOYE.NO_EMPLOYE=BANQUE_VACANCE.NO_EMPLOYE) INNER JOIN CONTRAT ON EMPLOYE.NO_EMPLOYE=CONTRAT.NO_EMPLOYE) INNER JOIN SALAIRE ON EMPLOYE.NO_EMPLOYE=SALAIRE.NO_EMPLOYE
WHERE ([DATE_JOUR] BETWEEN (AFF_EMP_CLASS.DATE_DEBUT) AND (AFF_EMP_CLASS.DATE_FIN)) AND ([DATE_JOUR] BETWEEN (CONTRAT.DATE_DEBUT) AND (CONTRAT.DATE_FIN)) AND ([DATE_JOUR] BETWEEN (SALAIRE.DATE_DEBUT) AND (SALAIRE.DATE_FIN)) AND ([DATE_JOUR] BETWEEN (BANQUE_VACANCE.DATE_DEBUT) AND (BANQUE_VACANCE.DATE_FIN)) AND ((EMPLOYE.NO_EMPLOYE)=[NO_DE_EMPLOYE]);

2 réponses

Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
29 févr. 2008 à 17:16
Je suis pas sûr d'avoir compris...

J'aimerais si c'est possible être capable de faire mon beetween pareil mais avec une date bidon genre 9999-01-01 à place que ma requête me retourne rien car il trouve un null dans la datede fu.

Tu veux que ta valeur de retour soit défini à une date par défaut si sa valeur est NULL ?

Si c'est le cas, tu as la fonction SQL "IFNULL" (ou ISNULL pour MSSQL) à utiliser comme suit :
SELECT IFNULL(nom_champ, 'valeur_de_remplacement_si_NULL') FROM nom_table;

Ca a pour effet de remplacer les valeur NULL par une valeur par défaut définie lors du retour des données


http://www.smallsql.de/doc/sql-functions/system/ifnull.html


Mais ta requête ne renvois pas la date, et donc ne te renvois pas de valeur NULL pour la date... C'est pour ça que jesuis pas sûr d'avoir compris.
-1
Est-ce que je peut utiliser cette fonction ailleur que dans le select car moi c'Est pas ma date que je veut retourner

C,est que dans ma bd jai un contrat et datedebut = ex : 2007-02-02 et la dateFin = null car son contrat n'a pas de date de fin de spécifier dont lorsque je fait mon select et que j'ai pas de date de fin il fait between 2007-02-02 et null donc il retourne rien mais si par exemple je reusiss a changer le null pour ma requette bin sa va faire between 2007-02-02 et 9999-01-01 et il va me resortir le contrat actuel.
0