Non mi ricordo bene ma mi pare che con la DISTINCT si debba utilizzare la GROUP BY (prima della ORDER BY) su tutti i campi scelti nella SELECT (esclusi quelli 'aggregati', cioè contenuti nella funzione di aggregazione DISTINCT, COUNT, MAX, etc..)
Quindi:
Anche se non capisco perchè:codice:SELECT DISTINCT (periodo),id FROM tbl Group By id Order By id desc
1) Ti ordini per ordine alfabetico anzichè che per ID
2) Non ti funzioni bene la DISTINCT e ti mostri dei duplicati dei valori di 'Periodo'