Error sentencia sql

necesito una pequeña ayuda con una sentencia SQL que necesito ejecutar. Tengo dos tablas “Cronograma” y “Ficha_Costo_Diseno” en ambas tablas existe...

La FAQ Error sentencia sql tiene

Pertenece a la categoría:

Pregunta
necesito una pequeña ayuda con una sentencia SQL que necesito ejecutar.

Tengo dos tablas “Cronograma” y “Ficha_Costo_Diseno” en ambas tablas existe el campo “num_ficha”. Ahora necesito hacer una SELECT a la tabla Cronograma pero para que me devuelva solo aquellos elementos donde coincida el num_ficha con la tabla Ficha_Costo_Diseno. La select la hace, pero si tengo el mismo valor de num_ficha varias veces en la tabla Ficha_Costo_Diseno me repite los elementos.


Respuesta de Jose B
Tus tablas no se encuentran normalizadas ya que haces una relación de muchos a muchos, por eso te considera 6 registros.
Debes poner otro parametro en tu condición de busqueda para que sólo te considere un registro.
Por que en la tabla cronograma tiene dos registros con NumFicha con valor 2?, el primer registro con quien se relaciona de la segunda tabla y y el segundo registro con quien se relaciona de la segunda tabla??

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 7 comentarios a la faq
5 comentarios no revisados
2 comentarios revisados:

richar_...
Trabaja con Temporales
15/10/09
Seria bueno que pusieras las estructuras de las tablas y el resultado que necesitas obtener.
El Distinct te puede ayudar, otra salida es hacer temporales de cada una de las tablas agrupadas luego cada temporal lo relacionas aya con los datos depurados.
ejemplo:

SELECT campo1, campo2
INTO #tbl_temporal
FROM tbl_tabla1
GROUP BY campo1, campo2

lo mismo con las dos tablas y luega haces la relacion con las dos temporales.

diana_v...
Distinct e in
15/10/09
Hola, personalemente puedo decirte que independientemente de que no tengas una buena estructura o normalizadas tus tablas puedes reslizar la consulta que estás preguntando. Claro que siempre es recomendable que tengas normalizada tu base de datos para optimizar tanto el almacenamiento en la Base de datos (evitar redundancia de datos por ejemplo) como para optimizar el trabajo del gestor (agilizar las consultas por ejemplo)... Según lo que entiendo quieres todos los campos que se encuentren en la tabla "Cronograma", siempre y cuando el campo "num_ficha" se encuentre en la tabla de "Ficha_costo_Diseño", yo manejaría una consulta de este estilo

select campo1, campo2, campo3, num_ficha from cronograma where num_ficha in (select disctinct num_ficha as num_ficha from Ficha_Costo_Diseño)

Ahora bien si requieres de algún otro criterio para filtrar bastará con anexar una claúsula "and"... Si es que las tablas que manejas contienen muchos registros lo mejor será pensar en el diseño de tu base de datos para agilizar el tiempo de la consulta.

Volver al árbol de categoríasVolver al árbol de categorías
Alojados en el grupo