SQL - Consulta compleja a dos tablas

 
Vista:

Consulta compleja a dos tablas

Publicado por DiegoJ (4 intervenciones) el 13/02/2007 19:27:34
tengo UNA consulta consulta que no se como resolver, es un caso sencillo pero no le encuentro la vuelta
tabla A :
campo1, campo 2, campo 3, campo4
tabla B :
campo1, campo 2, campo 3,
nesesito un sentencia que me devuelva de la tabla A campo1, campo 2, campo 3, campo4 y 'SI' si existe algun registro en la tabla B en donde coincidan los valores de Campo1, campo2, Campo 3 o 'NO' si no existe ningun registro de la tabla B que concuerde.
Les agradeceria su aporte.
Muchas Gracias Diego.
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:Consulta compleja a dos tablas

Publicado por Isaías (5072 intervenciones) el 13/02/2007 20:12:57
¿Algun trabajo escolar?
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:Consulta compleja a dos tablas

Publicado por diego J (4 intervenciones) el 13/02/2007 22:41:57
si en efecto.
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:Consulta compleja a dos tablas

Publicado por Isaías (5072 intervenciones) el 14/02/2007 00:44:56
Diego

Cuando se dejan trabajos en la escuela, es para que ustedes, los alumnos, investiguen y resuelvan.

No acostumbro dar respuestas a tareas de escuela, mas sin embargo, podrias utilizar este query

-- creo mis tablas para pruebas
CREATE TABLE #TABLAA (CAMPO1 CHAR(1), CAMPO2 CHAR(1), CAMPO3 CHAR(1), CAMPO4 CHAR(1))
CREATE TABLE #TABLAB (CAMPO1 CHAR(1), CAMPO2 CHAR(1), CAMPO3 CHAR(1))

-- inserto mis registros en A
INSERT INTO #TABLAA VALUES('A','B','C','D')
INSERT INTO #TABLAA VALUES('E','F','G','H')
INSERT INTO #TABLAA VALUES('I','J','K','L')
SELECT * FROM #TABLAA

-- inserto mis registros en B
INSERT INTO #TABLAB VALUES('A','B','C')
INSERT INTO #TABLAB VALUES('I','J','K')
SELECT * FROM #TABLAB

-- realizo mi query
SELECT
#TABLAA.campo1,#TABLAA.campo2, #TABLAA.campo3, CAMPO4,'SI'
FROM #TABLAA JOIN #TABLAB
ON #TABLAA.campo1 = #TABLAB.campo1
and #TABLAA.campo2 = #TABLAB.campo2
and #TABLAA.campo3 = #TABLAB.campo3
UNION
SELECT
#TABLAA.campo1,#TABLAA.campo2, #TABLAA.campo3, CAMPO4, 'NO'
FROM #TABLAA FULL JOIN #TABLAB
ON #TABLAA.campo1 = #TABLAB.campo1
and #TABLAA.campo2 = #TABLAB.campo2
and #TABLAA.campo3 = #TABLAB.campo3
WHERE #TABLAB.campo1 IS NULL
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:Consulta compleja a dos tablas

Publicado por diego J (4 intervenciones) el 14/02/2007 13:31:46
Muchas gracias Isaias.
Me sirvio de muchisimo.
lo tenia pude resolver de la siguiente manera tb.
Select #TABLAA.campo1,#TABLAA.campo2, #TABLAA.campo3, CAMPO4, isnull(left('SI'+#TABLAB.Campo1, 2), 'NO')
from #TABLAA
left join #TABLAB
on #TABLAA.campo1 = #TABLAB.campo1
and #TABLAA.campo2 = #TABLAB.campo2
and #TABLAA.campo3 = #TABLAB.campo3

siempre que #TABLAB.Campo1, sea de tipo varchar,
igual mi solucion no me parece muy decorosa.
Muchas gracias denuevo.
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