Question : Placer une valeur négative de colonne à 0 dans le serveur de SQL

J'ai un point de vue qui calcule les fines pour un livre retardé de bibliothèque. La logique étant employée est contrôle le non du jour entre le DUE_DATE et la date du jour et le multiplie avec un FINE_AMOUNT.

Now l'issue que j'ai est un de la colonne est négatif puisque l'échéance est plus grande que la date d'aujourd'hui. Voir que ma référence jointe de script.

My est ce code dans le view
(DATEDIFF (densité double, DUE_DATE, getdate ()) * FINE_PRICE) COMME FINE_AMOUNT,
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
class= " de l'id= " codeSnippet943794 de
--CHANGER LA VUE [dbo]. [LIBRARY_LOAN_REGISTRATION_VIEW]
--AS
Choisi
	LLR.ID,
	ISNULL (LLR.LIBRARY_ID, - 1) COMME LIBRARY_ID,
	ISNULL (LC.LIBRARY_NAME, '') COMME LIBRARY_NAME,
	ISNULL (LC.FINE_PRICE, 1) COMME FINE_PRICE,
	ISNULL (LLR.ASSET_ID, - 1) COMME ASSET_ID,
	ISNULL (LR.TITLE, '') COMME TITRE,
	ISNULL (LLR.LOANER_ID, - 1) COMME LOANER_ID,
	CAS LOANER_ID
         QUAND 1 PUIS ISNULL (STUDENT_REG.FIRST_NAME, '') + ''+ ISNULL (STUDENT_REG.LAST_NAME, '')
         QUAND 2 PUIS ISNULL (TEACHER.FIRST_NAME, '') + ''+ ISNULL (TEACHER.LAST_NAME, '')
         QUAND 3 PUIS ISNULL (ADMINISTRATOR.FIRST_NAME, '') + ''+ ISNULL (ADMINISTRATOR.LAST_NAME, '')
         QUAND 4 PUIS ISNULL (PRINCIPAL.FIRST_NAME, '') + ''+ ISNULL (PRINCIPAL.LAST_NAME, '')
		 QUAND 5 PUIS ISNULL (PARENT.FIRST_NAME, '') + ''+ ISNULL (PARENT.LAST_NAME, '')
    EXTRÉMITÉ COMME LOANER_NAME,	
	ISNULL (LLR.LOANER_TYPE_ID, - 1) COMME LOANER_TYPE_ID,
	ISNULL (CONVERTI (varchar, LLR.LOAN_DATE, 106), '') COMME LOAN_DATE, 
	ISNULL (CONVERTI (varchar, LLR.DUE_DATE, 106), '') COMME DUE_DATE, 
	ISNULL (CONVERTI (varchar, LLR.RETURN_DATE, 106), '') COMME RETURN_DATE, 
	DATEDIFF (densité double, DUE_DATE, getdate ()) COMME NUM_OF_DAY_LATE,
	ISNULL (LLR.LENDING_STATUS_ID, - 1) COMME LENDING_STATUS_ID,
	(DATEDIFF (densité double, DUE_DATE, getdate ()) * FINE_PRICE) COMME FINE_AMOUNT,
 	ISNULL (LKLS.NAME, '') COMME LENDING_STATUS
	 
DE
	dbo.LIBRARY_LOAN_REGISTRATION LLR LAISSÉ EXTERNES SE JOIGNENT
	dbo.LIBRARY_CONFIGURATION LC SUR LLR.LIBRARY_ID=LC.ID LAISSÉ EXTERNE SE JOIGNENT
	dbo.LIBRARY_REPOSITORY LR SUR LLR.ASSET_ID=LR.ID LAISSÉ EXTERNE SE JOIGNENT
	dbo.LIBRARY_KEYWORD_LENDING_STATUS LKLS SUR LLR.LENDING_STATUS_ID=LKLS.KEYWORD_ID LAISSÉ EXTERNE SE JOIGNENT
	dbo.STUDENTS_REGISTRATION_VIEW COMME STUDENT_REG SUR LLR.LOANER_ID = STUDENT_REG.ID ET LLR.LOANER_ID = 1 LAISSÉ EXTERNE SE JOIGNENT	
	dbo.STAFF_REGISTRATION_VIEW COMME PROFESSEUR SUR LLR.LOANER_ID = TEACHER.ID ET LLR.LOANER_ID = 2 A LAISSÉ EXTERNE SE JOINT    
	dbo.STAFF_REGISTRATION_VIEW COMME ADMINISTRATEUR SUR LLR.LOANER_ID = ADMINISTRATOR.ID ET LLR.LOANER_ID =3 A LAISSÉ EXTERNE SE JOINT    
	dbo.STAFF_REGISTRATION_VIEW EN TANT QUE PRINCIPAL SUR LLR.LOANER_ID = PRINCIPAL.ID ET LLR.LOANER_ID = 4 A LAISSÉ EXTERNE SE JOINT    
	dbo.PARENT_REGISTRATION_VIEW COMME PARENT SUR LLR.LOANER_ID = PARENT.ID ET LLR.LOANER_ID = 5
ALLER

PLACER ANSI_NULLS AU LOIN
ALLER
PLACER QUOTED_IDENTIFIER AU LOIN
ALLER
class= de

Réponse : Placer une valeur négative de colonne à 0 dans le serveur de SQL

CAS QUAND DATEDIFF (densité double, DUE_DATE, getdate ()) <� 0="" Then="" 0="" ELSE="">(DATEDIFF (densité double, DUE_DATE, getdate ()) * FINE_PRICE) EXTRÉMITÉ COMME FINE_AMOUNT,
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us