SQL Server - Consultar un registro unico

 
Vista:

Consultar un registro unico

Publicado por Fernando (2 intervenciones) el 27/02/2007 20:48:01
Holas.
Miren tengo un problema al moemnto de realizar una consulta de una tabla "V" donde esta tabla tiene 3 FKs que proviene de otra tabla "E" pero que son del mismo campo o atributo. Por ejm:

Tabla V Tabla E
----------- --------------
IDTablaV IDTablaE
Campo1 Atributo1
Campo2 Atributo2
Campo3 Atributo3
FK1 (IDTablaE)
FK2(IDTablaE)
FK3(IDTablaE)
Campo4

Como ven el enlace esde 1:M de E a V donde V tiene 3 enlaces Fks que proviene de E, pero cada uno con un significado distinto dentro de la Tabla V. Ademas cada FK no siempre se ingresa es decir son opcionales puedo que los 3 se ingresen o puede que solo uno dependiendo de la situacion.
El problema es como puedo hacer una consulta para que me bote un solo registro unico de la Tabla V. Ya que en la condicion WHERE debe ir el filtro de V.FK1=E.IDTablaE or V.FK2=E.IDTablaE or V.FK3=E.IDTablaE. Pero cuando hago este filtro me duplica el mismo registro 3 veces y en cada campo de los FKs me da el mismo valor de IDTablaE y no es asi ya que los 3 tiene valores distintos si es que no son nulos.
Como puedo dar la sentencia de consulta para que me bote un solo registro unico y que me muestre no sus valores Fks de la TablaE sino los valores de "Atributo1" que le corresponde al FK1 , FK2 y FK3 respectivamente y no lo toeme el mismo valor para los 3 por error.
ESpero puedan ayudarme, porfa.
Gracias.

Fernando
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consultar un registro unico

Publicado por Isaías (3308 intervenciones) el 28/02/2007 00:58:08
¿podrias darnos un ejemplo con REGISTROS?

Es muy extraña tu relacion de tablas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultar un registro unico

Publicado por FERNANDO (2 intervenciones) el 03/03/2007 00:25:25
HOLA.
YA LO SOLUCIONE, SIMPLEMENTE ERA CREAR UNA FUNCION DENTRO DEL SQL SERVER QUE ME ARROJE LAS DESCRIPCION DEL CAMPO DE ENLACE FK. IGUAL GRACIAS.
PERO TENGO OTRA CONSULTA, ESTA BIEN HACER ESTA CONSULTA:

SELECT SUM(MT.ASIG_TIK) AS GALONES_X_RUTA,
dbo.fn_ObtenerRutas(MT.ID_TIK) AS RUTAS
FROM MATICKET MT, MATANQ MTQ
WHERE MT.ELIMINADO=0 AND MT.FEC_TIK BETWEEN '01/01/2006' AND '31/03/2006' AND MT.ID_TANQ=MTQ.ID_TANQ AND MTQ.TIPO_TANQ='PETROLEO'
GROUP BY dbo.fn_ObtenerRutas(MT.ID_TIK)

DONDE dbo.fn_ObtenerRutas ES UNA FUNCION DEFINIDA QUE DEVUELVE LAS RUTAS DE UN VEHICULO EN PARTICULAR (ES DESCRIPTIVO)

LO QUE PASA ES QUE CADA VEZ QUE CONSULTO PARA RANGOS DE FECHAS GRANDES COMO EL CASOD E ARRIBA SE DEMORA BASTANTE Y SIGUE PROCESANDO PASADO LOS 10 MINUTOS, SIN EMBARGO CUANDO LE DOY POR EJM 10 DIAS DE RANGO SE DEMORA UNOS 15 SEGUNDOS Y ME ARROJA RESULATADOS CORRECTOS.
QUES EPUEDE HACER PARA ACELERAR LA BUSQUEDA???

GRACIAS,
FERNANDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultar un registro unico

Publicado por Isaías (3308 intervenciones) el 06/03/2007 21:59:50
Las fechas, particularmente en SQL SERVER, no se recomiendan filtrar mediante BETWEEN y deben tener el formato ANSI (yyyymmdd), por lo que te recomiendo cambiar tu WHERE por algo como:

MT.FEC_TIK >= '20060101' AND MT.FEC_TIK <= '20060331'

¿Como andamos de INDICES?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar