DB2 - Consulta Select compleja.

 
Vista:

Consulta Select compleja.

Publicado por jesus (1 intervención) el 10/04/2015 12:55:22
Hola, quizá la consulta no sea tan compleja como creo, pero les cuento ya que soy nuevo en esto del DB2 y necesito obtener unos datos y no doy con la forma.

Me han metido en un proyecto en el que tengo la siguiente estructura de tablas.(No pongo todos los campos)

tabla Artículo.
ARTICULO -> contiene el id de artículo
NOMBRE -> contiene el nombre del artículo.
DESCRIPCION-> contiene la descripción del artículo

tabla Artículo2
ARTICULO -> contiene el id de artículo
CODTIPO-> contiene un id

tabla TIPO
CODTIPO->contiene el id del tipo
NOMBRE-> Contiene la descripción del tipo de código. (por ejemplo codtipo = 001, nombre = Marca)

tabla SUBTIPO
CODTIPO->contiene el id del tipo
CODSUBTIPO-> id del subtipo
NOMBRE-> Descripción del subcódigo de filtro (ejemplo: codtipo = 001, nombre = "El nombre de la marca")

tabla STOCK
ARTICULO -> contiene el id del artículo
CANTIDAD-> contiene el stock del artículo.

Necesito obtener los artículos con su marca y su stock.
Ya obtengo perfectamente la tabla artículo con su stock en algo parecido a esta consulta.

select AUX.* from (select row_number() over(order by A.ARTICULO asc) as r ,A.*,B.* from ARTICULO A left outer join STOCK B on A.ARTICULO = B.ARTICULO) as AUX

pero lo que necesito es obtener también la marca asociada a ese artículo, con algo, entiendo parecido a esto:

select AUX.* from (select row_number() over(order by A.ARTICULO asc) as r ,
A*, B.*,D.NOMBRE
from ARTICULO A left outer join STOCK B on A.ARTICULO = B.ARTICULO
left outer join ARTICULO2 C on A.ARTICULO = C.ARTICULO
left outer join TIPO T on T.CODTIPO = C.CODT01
left outer join SUBTIPO D on C.CODT01 = D.CODTIPO) as AUX

Esta consulta me devuelve un campo con todas las marcas, pero necesitaría obtener sólo la marca asociada.

necesito pasarle supongo un where donde el campo CODTIPO de la tabla articulo2 sea igual a 001 que es la marca del artículo, pero estoy completamente perdido. No sé cómo sacar esto en db2 de ahí que pida vuestra ayuda.

Alguien que sea tan amable de darme un poco de luz????? Muchas gracias por adelantado. Saludos.
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