Sto tentando di eseguire una funzione di tipo di istruzione IF nel server SQL.Dichiarazione caso SQL Server quando IS NULL
Dove c'è un NULL nel campo, voglio che prenda un campo da una delle tabelle e aggiunga 10 giorni ad esso.
E se possibile, creare un'altra colonna e aggiungere i 30 giorni.
SELECT DISTINCT
B.[ID],
MAX(A.[START DATE]),
B.[STAT],
C.[POST DATE],
CASE
WHEN (C.[POST DATE] BETWEEN C.[EVENT DATE]+10 AND C.[EVENT DATE]+30) THEN 'GOOD'
END AS [BETTER VISIT],
CASE
WHEN B.[STAT] IS NULL THEN (C.[EVENT DATE]+10)
ELSE '-'
END AS [DATE]
FROM
#TEMP1 A
FULL OUTER JOIN #TEMP2 B
ON A.[ID]=B.[ID]
FULL OUTER JOIN #TEMP3 C
ON A.[ID]=C.[ID]
GROUP BY
B.[ID],
B.[STAT],
C.[POST DATE],
C.[EVENT DATE]
ORDER BY
A.[START DATE] DESC
Il risultato apparirebbe un po 'come:
ID START DATE STAT POST DATE BETTER VISIT DATE DATE2
---------------------------------------------------------------------------
1 2013-01-01 GOOD 2013-11-01 GOOD - -
2 2013-03-01 NULL NULL NULL 2013-03-11 2013-03-31
Cosa c'è di sbagliato con l'uscita si' stai ottenendo ora? –
Msg 242, livello 16, stato 3, riga 1 La conversione di un tipo di dati varchar in un tipo di dati datetime ha provocato un valore fuori intervallo. – caffaddt
IsNull potrebbe aiutare. http://msdn.microsoft.com/en-us/library/ms184325.aspx – Oliver