Problemas en una consulta de SQL

Buenas tardes, tengo un problema con una consulta, veras, tengo una tabla que almacena los precios de ciertos códigos de ciertos productos, en esta tabla se almacena su historial, osea los diversos cambios que suceden a los precios de los códigos. Los campos principales son el código del producto, los montos de los precios, las fechas del ultimo cambio y un campo periodovalidez que diferencia el precio actual de los históricos. Quiero hacer una consulta que me entregue todos los códigos que solo han sufrido un cambio, es decir que solo aparezca un cambio en una determinada fecha o rango de fechas, he utilizado la sigte consulta
select itemcodigo from CO_Precio
where CompaniaSocio = '02000000' and CONVERT(CHAR(10),UltimaFechaModif,105) BETWEEN '01-07-2011' AND '31-07-2011'
group by ItemCodigo
having COUNT(itemcodigo) = 1
order by ItemCodigo
Pero no me funciona, ya que me bota códigos que tienen más de un cambio de precio y yo solo quiero que aparezca uno, que estoy haciendo mal.
Vale decir que en esta tabla, se ingresan automáticamente los códigos nuevos que por primera vez se les pone precio, y esos códigos son los que deseo yo filtrar con mi consulta. Espero puedas ayudarme. Gracias

Añade tu respuesta

Haz clic para o