Tengo esta consulta:
Select F.IdFlota, F.IdEmpresaMarca, F.IdMarca, F.IdGamaSubgama, F.IdGamaSegmento,
FM.*
From dbo.vi_Flota F Inner Join
MarcaEmpresa MI
On F.IdEmpresaMarca = MI.IdEmpresa And
F.IdMarca = MI.IdMarca Inner Join
(Select * From dbo.ftbFilasInformeGIC (
1, 1, 1,
'13514' , 0)) FM On
F.IdProvincia = FM.IdClave1
Where F.IdConcesionario = '13514' And
F.FechaMatriculacion >= '01/01/2009' And
F.IdGamaSegmento = 3
Dado que estoy filtrando, en el Where, la condición F.IdGamaSegmento = 3, todas las filas resultantes debieran salir con un valor 3. Bien, no ocurre.
Pero lo más curioso del caso es que si cambio la fecha de filtro, y dejo la condición en F.FechaMatriculacion >= '01/01/2005'... el filtro se hace bien y sólo salen registros con valor 3 en la columna IdGamaSegmento.
El asunto de esta consulta es raro por muchos motivos. Por ejemplo, EL FILTRO POR FECHA SIEMPRE LO HACE BIEN, siempre salen registros de fecha posterior a la condición que ponga, pero lo curioso ES QUE EL ERROR AFECTA A OTRA COLUMNA, a F.IdGamaSegmento.
Es absurdo, o lo parece.
Otra cosa es que nos ocurre en un servidor, en el de producción, pero no en el de pruebas. En el de pruebas la sentencia SQL, ejecutada desde el Analizador de Consultas, funciona correctamente. Hemos copiado la configuración de atributos de la base de datos y es la misma en los dos sitios.
Vuelvo a repetir, me parece absurdo.