SQL Server - CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

 
Vista:

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Joao Huapaya (4 intervenciones) el 13/01/2016 21:59:03
Hola quisiera que me apoyen en esta caso:
Realizar una consulta entre 3 tablas para traer data de la 3era tabla y asi poder realizar un insert en una cuarta tabla.

Ejemplo:

De la tabla1 hago que el FK_PedArtic=3, esto para que me obtener la cDesRuta="BICICLETA-PE-3S D/PATIN-PE-28 A/LA MOTO-PE-26/AUTO", de esa data cargada quiero obtener de la tabla2 el cCodProd(01,02,03,04) correspondiente de la similitud entre la data (BICICLETA, PATIN, LA MOTO, AUTO) , y de los cCodProd (01,02,03,04) obtenidos hacer una selección en la tabla3 con los 2 primeros caracteres su campo cCodU(030101 >> 03, 040101>>04, 020101>>02, 010101 >>01) para asi extraer los registros del campo cDato (dato1, dato2, dato3, dato5) y asi poder realizar el insert en una 4ta tabla


tabla1
FK_PedArtic cDesRuta
1 AUTO-PE-1S B /PATIN-PE-32/CAMIONETA
2 BICICLETA-PE-12/LA MOTO
3 BICICLETA-PE-3S D/PATIN-PE-28 A/LA MOTO-PE-26/AUTO
4 LA MOTO-PE-22/PATIN
5 AUTO-PE- 1N F
6 LA MOTO-PE-08/AUTO

tabla2
cCodProd cDesProd
01 AUTO
02 BICICLETA
03 LA MOTO
04 PATIN

05 CAMIONETA

tabla3
cCodU cDato
030101 dato1
040101 dato2
020101 dato3

050101 dato4
010101 dato5
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Isaias (4558 intervenciones) el 13/01/2016 22:14:23
¿Y cual es el avance que llevas de tu query?
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

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Joao Huapaya (4 intervenciones) el 13/01/2016 22:33:57
Tengo esto avanzado hasta ahora:

select cDato from tabla3 where SUBSTRING ( cCodU ,1 , 2 ) IN (select distinct cCodProd from tabla2 where cDesProd in ??????????????)



Mi duda es sacar el cCodProd de la tabla2 mediante el "cDesProd" haciendo referencia a la data del campo cDesRuta de la tabla 1 "BICICLETA-PE-3S D/PATIN-PE-28 A/LA MOTO-PE-26/AUTO"
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Isaias (4558 intervenciones) el 14/01/2016 00:38:56
Partamos de aqui

De la tabla1 hago que el FK_PedArtic=3, esto para que me obtener la cDesRuta="BICICLETA-PE-3S D/PATIN-PE-28 A/LA MOTO-PE-26/AUTO

¿Cual es la relacion entre ambas tablas? (CAMPOS que las relacionan)
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

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Joao Huapaya (4 intervenciones) el 14/01/2016 15:25:19
Mira.

Entre la tabla1 y tabla2 no hay relación en cuestión de campo,pero hay relación entre data, ya que para el ingreso de registros en el campo cDesRuta de la tabla1 se han basado con la data del campo cDesProd de la tabla2 pero concatenando con otra data de otra tabla.

Y la relación entre la tabla2 y tabla3 se basa entre el campo cCodPro (tabla2) con los 2 primeros caracteres del campo cCodU (tabla3)

Justo la Relación entre la tabla1 y la tabla3 es lo que estoy queriendo obtener basado en los anteriores.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Isaias (4558 intervenciones) el 14/01/2016 17:00:03
Si no existe relacion, entonces es como querer juntar chiles y tomates con tornillos y tuercas.....
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

CONSULTA PARA LA BUSQUEDA E IDENTIFICACION ENTRE 3 TABLAS

Publicado por Joao Huapaya (4 intervenciones) el 15/01/2016 20:46:09
Si pues, pero lo que quería era resolver ese tema. Ya que la data esta así.

Bueno he dado una solución, uno con una tabla temporal y la 2da opcion con una variable de tipo table. En el ejemplo que pongo es con la variable de tipo table (@var3).

Saludos Isaias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @var1 INT;
DECLARE @var2 varchar(50);
DECLARE @var3 table(c1 int);
 
SET @var1=1;
 
WHILE (@var1 <= (SELECT count (distinct cDesProd)  FROM tabla2))
BEGIN
set @var2= rtrim(ltrim((SELECT distinct CAST(cDesProd AS varchar)  FROM tabla2 where cCodProd=@var1)));
   IF (SELECT 'verdad' FROM tabla1 where FK_PedArtic='3' and cDesRuta like ('%'+@var2+'%'))='verdad'
      begin
 
        insert into @var3 values (@var1)
      end
SET @var1=@var1+1;
END
select cDato from tabla3 where SUBSTRING ( cCodU ,1 , 2 ) IN (select * from @var3))
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