Prova cosi. Sono un po' arrugginito con SQL server.
Dovresti togliere i [master].[dbo].
codice:
SELECT * from
(select T1.parziale, T2.note, ROW_NUMBER() OVER(ORDER BY T1.parziale) as ct
from
(SELECT distinct LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1) AS parziale
FROM [master].[dbo].HH_EX_LISTINI) t1
INNER JOIN
(select LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1) AS parziale, min(lc_note) as note
from [master].[dbo].HH_EX_LISTINI
group by LEFT(lc_codart,CHARINDEX('.',lc_codart+'.')-1)
) t2 on T1.parziale=T2.parziale
WHERE T2.note!='') TF
where TF.ct between 1 and 40
Dà
20170705_001.JPG