Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2009, 03:36
MrRipley
 
Fecha de Ingreso: julio-2003
Mensajes: 120
Antigüedad: 21 años, 5 meses
Puntos: 0
Poltergeist en Transact-SQL

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.

Última edición por MrRipley; 16/06/2009 a las 03:44