J'ai un SELECT TSQL qui peut retourner une valeur nulle. J'ai essayé d'utiliser ISNULL pour le remplacer par 0 mais pour une raison quelconque cela ne fonctionne pas. Le tableau de la sélection comporte les colonnes suivantes:ISNULL ne fonctionne pas dans TSQL Sélectionnez
- storeID -> int
- penaltyPercent -> décimal (9,2)
- penaltyDate -> dateHeure
SELECT ISNULL(penaltyPercent, 0.0) AS penaltyPercent
FROM dbo.Penalty
WHERE (penaltyDate = (SELECT MAX(penaltyDate) AS date
FROM dbo.Penalty AS Penalty_1
WHERE (penaltyDate <= @date) AND (storeID = @storeID))) AND
(storeID = @storeID)
Lorsque la date est antérieure à la première date de pénalité (où il devrait y avoir une pénalité de 0), aucun résultat n'est retourné. Je ne sais pas pourquoi cela ne fonctionne pas. J'ai un travail mais ça m'embête.
Voici un échantillon des données utilisées:
storeID penaltyDate penaltyPercent
182 10/1/2008 12:00:00 AM 0.020000
182 11/1/2008 12:00:00 AM 0.040000
182 12/1/2008 12:00:00 AM 0.070000
formatez votre réponse, il est clairement de cette façon – eKek0
Merci à tous, d'un SQL relatif noob. – monkeypushbutton