Ayuda con consulta

21/11/2006 - 20:36 por Ma. Rosario | Informe spam
Buenas tardes a todos, nuevamente los molesto por lo siguiente:

Resulta que deseo hacer una vista, la cual relaciono con otras tablas
pero no me arroja el resultado que yo espero.

A continuación detallo mi problema:

Tengo mi tabla principal almacen_catalogo_partes

select id_catalogo_partes, id_parte, id_clasificacion, id_familia,
id_subfamilia, descripcion, existencia from almacen_catalogo_partes
where existencia>=1.0

la cual me arroja los siguientes datos

1 001001001 22 1 1 JUNTA N-14 FRENO MOTOR (6068135) 1.0
139 001007017 22 1 7 TAPON P/ACEITE MOTOR 400 (200284-N) 1.0




y cuando realizo la vista con las demas tablas relacionadas (familias y
subfamilias, las cuales no hago mencion aqui) se me multiplican los datos:



SELECT dbo.almacen_catalogo_partes.id_catalogo_partes,
dbo.almacen_catalogo_partes.id_parte,
dbo.almacen_clasificacion.descripcion,
dbo.almacen_familias.descripcion AS fam,
dbo.almacen_subfamilias.descripcion AS subfam,
dbo.almacen_catalogo_partes.descripcion AS Expr1,
dbo.almacen_catalogo_partes.existencia
FROM dbo.almacen_catalogo_partes INNER JOIN
dbo.almacen_clasificacion ON
dbo.almacen_catalogo_partes.id_clasificacion =
dbo.almacen_clasificacion.id_clasificacion INNER JOIN
dbo.almacen_familias ON
dbo.almacen_catalogo_partes.id_familia = dbo.almacen_familias.id_familia
INNER JOIN
dbo.almacen_subfamilias ON
dbo.almacen_familias.id_familia = dbo.almacen_subfamilias.id_familia
where almacen_catalogo_partes.existencia>=1.0




1 001001001 SIN ASIGNAR MOTORES COMPLETOS MONOBLOCK JUNTA N-14 FRENO
MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS MONOBLOCK TAPON P/ACEITE
MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS CABEZAS Y FRENOS DE MOTOR
JUNTA N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS CABEZAS Y FRENOS DE MOTOR
TAPON P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE LUBRICACION JUNTA
N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE LUBRICACION
TAPON P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ENFRIAMENTO JUNTA
N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ENFRIAMENTO TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE INYECCION JUNTA
N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE INYECCION TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ADMISION JUNTA N-14
FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ADMISION TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS ACCESORIOS MOTOR JUNTA N-14
FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS ACCESORIOS MOTOR TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS MOTORES COMPLETOS JUNTA N-14
FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS MOTORES COMPLETOS TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0

Mi pregunta es, cómo puedo generar una vista en la cual no me haga esta
multiplicación la cual es en relación al numero de subfamilias que tengo
definido.


Yo lo único que deseo es que en la vista solo me muestren los siguientes
datos con su respectivo nombre de familia y subfamilia

1 001001001 22 1 1 JUNTA N-14 FRENO MOTOR (6068135) 1.0
139 001007017 22 1 7 TAPON P/ACEITE MOTOR 400 (200284-N) 1.0


Espero y alguine me pueda ayudar.

Muchas gracias.
 

Leer las respuestas

#1 Alejandro Mesa
21/11/2006 - 21:14 | Informe spam
Ma. Rosario,

Al parecer una de las tablas con las que haces la union tiene multiples
filas que machan el criterio de union y por lo tanto te duplica la info.
Prueba la union de una en una a ver cual de ellas es la culpable y quitas la
union con esa tabla o usas agrupacion para evitar multiplicidad.


AMB

"Ma. Rosario" wrote:

Buenas tardes a todos, nuevamente los molesto por lo siguiente:

Resulta que deseo hacer una vista, la cual relaciono con otras tablas
pero no me arroja el resultado que yo espero.

A continuación detallo mi problema:

Tengo mi tabla principal almacen_catalogo_partes

select id_catalogo_partes, id_parte, id_clasificacion, id_familia,
id_subfamilia, descripcion, existencia from almacen_catalogo_partes
where existencia>=1.0

la cual me arroja los siguientes datos

1 001001001 22 1 1 JUNTA N-14 FRENO MOTOR (6068135) 1.0
139 001007017 22 1 7 TAPON P/ACEITE MOTOR 400 (200284-N) 1.0




y cuando realizo la vista con las demas tablas relacionadas (familias y
subfamilias, las cuales no hago mencion aqui) se me multiplican los datos:



SELECT dbo.almacen_catalogo_partes.id_catalogo_partes,
dbo.almacen_catalogo_partes.id_parte,
dbo.almacen_clasificacion.descripcion,
dbo.almacen_familias.descripcion AS fam,
dbo.almacen_subfamilias.descripcion AS subfam,
dbo.almacen_catalogo_partes.descripcion AS Expr1,
dbo.almacen_catalogo_partes.existencia
FROM dbo.almacen_catalogo_partes INNER JOIN
dbo.almacen_clasificacion ON
dbo.almacen_catalogo_partes.id_clasificacion =
dbo.almacen_clasificacion.id_clasificacion INNER JOIN
dbo.almacen_familias ON
dbo.almacen_catalogo_partes.id_familia = dbo.almacen_familias.id_familia
INNER JOIN
dbo.almacen_subfamilias ON
dbo.almacen_familias.id_familia = dbo.almacen_subfamilias.id_familia
where almacen_catalogo_partes.existencia>=1.0




1 001001001 SIN ASIGNAR MOTORES COMPLETOS MONOBLOCK JUNTA N-14 FRENO
MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS MONOBLOCK TAPON P/ACEITE
MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS CABEZAS Y FRENOS DE MOTOR
JUNTA N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS CABEZAS Y FRENOS DE MOTOR
TAPON P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE LUBRICACION JUNTA
N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE LUBRICACION
TAPON P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ENFRIAMENTO JUNTA
N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ENFRIAMENTO TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE INYECCION JUNTA
N-14 FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE INYECCION TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ADMISION JUNTA N-14
FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS SISTEMA DE ADMISION TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS ACCESORIOS MOTOR JUNTA N-14
FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS ACCESORIOS MOTOR TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0
1 001001001 SIN ASIGNAR MOTORES COMPLETOS MOTORES COMPLETOS JUNTA N-14
FRENO MOTOR (6068135) 1.0
139 001007017 SIN ASIGNAR MOTORES COMPLETOS MOTORES COMPLETOS TAPON
P/ACEITE MOTOR 400 (200284-N) 1.0

Mi pregunta es, cómo puedo generar una vista en la cual no me haga esta
multiplicación la cual es en relación al numero de subfamilias que tengo
definido.


Yo lo único que deseo es que en la vista solo me muestren los siguientes
datos con su respectivo nombre de familia y subfamilia

1 001001001 22 1 1 JUNTA N-14 FRENO MOTOR (6068135) 1.0
139 001007017 22 1 7 TAPON P/ACEITE MOTOR 400 (200284-N) 1.0


Espero y alguine me pueda ayudar.

Muchas gracias.

Preguntas similares