MS SQL e valori NULL

domenica 05 luglio 2015 - 12.17
Tag Elenco Tags  SQL Server Express

Tonino70 Profilo | Newbie

buon gg a tutti, ho questo problema che non riesco a risolvere, in una tabella ho questi dati (dovrei aver previsto tutte le casistiche):

articolo val_dal val_al
aa001 NULL NULL
aa002 NULL 2099-12-31
aa003 NULL 2015-06-30
aa004 2012-01-01 NULL
aa005 2015-07-15 NULL
aa006 2015-01-01 2015-12-31
aa007 2015-07-05 2015-07-05
aa008 2015-07-15 2099-12-31
aa009 2012-01-01 2015-06-30

ho la seguente query:
SELECT * FROM arc_articoli
WHERE (art_descrizione LIKE '%aa0%' OR art_cod_gestionale LIKE '%aa0%')
AND (art_valido_da IS NULL OR art_valido_da <= CONVERT(DATETIME, '2015-07-05', 102))
AND (art_valido_da IS NULL OR art_valido_a >= CONVERT(DATETIME, '2015-07-05', 102))
ORDER BY art_cod_gestionale ASC

ma ricevo il seguente risultato:
artic val_dal val_al
aa001 NULL NULL (me lo aspetto)
aa002 NULL 2099-12-31 (me lo aspetto)
aa003 NULL 2015-06-30 (NON ci dovrebbe essere) è scaduto...
aa006 2015-01-01 2015-12-31 (me lo aspetto)
aa007 2015-07-05 2015-07-05 (me lo aspetto)

quando invece per l'articolo sotto riportato va tutto bene, che sarebbe l'opposto del aa003
aa005 2015-07-15 NULL (non lo riporta ma ancora deve iniziare la validità)

cosa sbaglio ?
grazie a chi mi potrà essere di aiuto, saluti.
Antonino dimarco

ysdemarc Profilo | Expert

Hai sbagliato la condizione nella penultima riga..
hai scritto :

AND (art_valido_da IS NULL OR art_valido_a >= CONVERT(DATETIME, '2015-07-05', 102))

e quindi art_valido_da IS NULL piuttosto che art_valido_a IS NULL

Vincenzo
Programmatore sbilenco

Tonino70 Profilo | Newbie


mannaggia 'copia/incolla" !

cmq grazie tante, ciao.
Antonino dimarco
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5