>Sto lavorando con SQL 2000.
>Dovrei riuscire ad avere un record per articolo in un DataBase
>in data, cioè ci possono essere più record articoli ma con date
>diverse:
>il database è un dataBase di Barcode con in chiave il codice
>articolo, il barcode e la data ultima modifica.
>Dovrei fare una select ottenendo un record univoco per ogni articolo.
>Ho provato la seguente istruzione, ma nel caso ci siano 3 barcode
>legati allo stesso articolo mi ritorna 3 record invece di uno
>solo.
>
>Es:
>
>SELECT *, ean_art AS Expr1
>FROM AnaArtEan t
>WHERE (ean_ann = 0) AND (ean_dtv >= ALL
> (SELECT ean_dtv
> FROM AnaArtEan
>WHERE ean_art = t.ean_art AND ean_dtv <= CONVERT(DATETIME,
>'2006-09-18', 102))) AND (ean_art = N'000319225')
>
>Alla fine la query dovrebbe tornare un record per ogni articolo.
>
>Come posso fare?
>
se dell'articolo in questione vuoi ottenere la riga con la maggiore delle date inferiori o uguali
al 18/09/2006 dovrebbe funzionare qualcosa del genere:
select *
from AnaArtEan t
where t.ean_art = N'000319225'
and ean_dtv <= CONVERT(DATETIME, '2006-09-18', 102)
and not exists
(select 1 from AnaArtEan t2
where t2.ean_art = t.ean_art
and t2.ean_dtv <= CONVERT(DATETIME, '2006-09-18', 102)
and t2.ean_dtv > t.ean_dtv)
l'ho scritta a braccio senza fare prove quindi.... speriamo bene,
eventualmente ci si risente.
Ciao, Michele