Questione : Fissare un valore negativo della colonna a 0 in assistente di SQL

Ho una vista che computa le indennità per un libro in ritardo delle biblioteche. La logica che usando è controllo no del giorno fra il DUE_DATE e la data corrente e lo moltiplica con un FINE_AMOUNT.

Now l'edizione che sto avendo sono uno della colonna sono negativo poiché la scadenza è maggior di odierna data. Vedere che il mio riferimento allegato di script.

My è questo codice nel view
(DATEDIFF (dd, DUE_DATE, getdate ()) * FINE_PRICE) COME FINE_AMOUNT,
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
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= " del id= " codeSnippet943794 del
--ALTERARE LA VISTA [dbo]. [LIBRARY_LOAN_REGISTRATION_VIEW]
--AS
Prescelto
	LLR.ID,
	ISNULL (LLR.LIBRARY_ID, - 1) COME LIBRARY_ID,
	ISNULL (LC.LIBRARY_NAME, '') COME LIBRARY_NAME,
	ISNULL (LC.FINE_PRICE, 1) COME FINE_PRICE,
	ISNULL (LLR.ASSET_ID, - 1) COME ASSET_ID,
	ISNULL (LR.TITLE, '') COME TITOLO,
	ISNULL (LLR.LOANER_ID, - 1) COME LOANER_ID,
	CASO LOANER_ID
         QUANDO 1 ALLORA ISNULL (STUDENT_REG.FIRST_NAME, '') + ''+ ISNULL (STUDENT_REG.LAST_NAME, '')
         QUANDO 2 ALLORA ISNULL (TEACHER.FIRST_NAME, '') + ''+ ISNULL (TEACHER.LAST_NAME, '')
         QUANDO 3 ALLORA ISNULL (ADMINISTRATOR.FIRST_NAME, '') + ''+ ISNULL (ADMINISTRATOR.LAST_NAME, '')
         QUANDO 4 ALLORA ISNULL (PRINCIPAL.FIRST_NAME, '') + ''+ ISNULL (PRINCIPAL.LAST_NAME, '')
		 QUANDO 5 ALLORA ISNULL (PARENT.FIRST_NAME, '') + ''+ ISNULL (PARENT.LAST_NAME, '')
    ESTREMITÀ COME LOANER_NAME,	
	ISNULL (LLR.LOANER_TYPE_ID, - 1) COME LOANER_TYPE_ID,
	ISNULL (CONVERTITO (varchar, LLR.LOAN_DATE, 106), '') COME LOAN_DATE, 
	ISNULL (CONVERTITO (varchar, LLR.DUE_DATE, 106), '') COME DUE_DATE, 
	ISNULL (CONVERTITO (varchar, LLR.RETURN_DATE, 106), '') COME RETURN_DATE, 
	DATEDIFF (dd, DUE_DATE, getdate ()) COME NUM_OF_DAY_LATE,
	ISNULL (LLR.LENDING_STATUS_ID, - 1) COME LENDING_STATUS_ID,
	(DATEDIFF (dd, DUE_DATE, getdate ()) * FINE_PRICE) COME FINE_AMOUNT,
 	ISNULL (LKLS.NAME, '') COME LENDING_STATUS
	 
DA
	dbo.LIBRARY_LOAN_REGISTRATION LLR LASCIATO ESTERNI SI UNISCONO
	dbo.LIBRARY_CONFIGURATION LC SU LLR.LIBRARY_ID=LC.ID LASCIATO ESTERNO SI UNISCONO
	dbo.LIBRARY_REPOSITORY LR SU LLR.ASSET_ID=LR.ID LASCIATO ESTERNO SI UNISCONO
	dbo.LIBRARY_KEYWORD_LENDING_STATUS LKLS SU LLR.LENDING_STATUS_ID=LKLS.KEYWORD_ID LASCIATO ESTERNO SI UNISCONO
	dbo.STUDENTS_REGISTRATION_VIEW COME STUDENT_REG SU LLR.LOANER_ID = STUDENT_REG.ID E LLR.LOANER_ID = 1 LASCIATO ESTERNO SI UNISCONO	
	dbo.STAFF_REGISTRATION_VIEW COME INSEGNANTE SU LLR.LOANER_ID = TEACHER.ID E LLR.LOANER_ID = 2 HA LASCIATO ESTERNO SI UNISCE    
	dbo.STAFF_REGISTRATION_VIEW COME COORDINATORE SU LLR.LOANER_ID = ADMINISTRATOR.ID E LLR.LOANER_ID =3 HA LASCIATO ESTERNO SI UNISCE    
	dbo.STAFF_REGISTRATION_VIEW COME PRINCIPALE SU LLR.LOANER_ID = PRINCIPAL.ID E LLR.LOANER_ID = 4 HA LASCIATO ESTERNO SI UNISCE    
	dbo.PARENT_REGISTRATION_VIEW COME GENITORE SU LLR.LOANER_ID = PARENT.ID E LLR.LOANER_ID = 5
ANDARE

REGOLARE ANSI_NULLS FUORI
ANDARE
REGOLARE QUOTED_IDENTIFIER FUORI
ANDARE
class= del

Risposta : Fissare un valore negativo della colonna a 0 in assistente di SQL

CASO QUANDO DATEDIFF (dd, DUE_DATE, getdate ()) <� 0="" Then="" 0="" ELSE="">(DATEDIFF (dd, DUE_DATE, getdate ()) * FINE_PRICE) ESTREMITÀ COME FINE_AMOUNT,
Altre soluzioni  
 
programming4us programming4us