SQL Server - Unir 2 tablas, comparar campos y generar una columna para sumarlos

 
Vista:
sin imagen de perfil

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por alan (4 intervenciones) el 25/05/2016 21:46:31
Hola amigos,

Tengo una pequeña duda, necesito unir dos tablas:

select t1.campo, t2.campo1 from tabla1 t1
join tabla2 t2 on t1.oid = t2.oid

Con esto, solo me muestra 1 campo de cada tabla algo como esto:


Tabla1.Campo1 Tabla2.Campo1


Los posibles valores de Tabla1.Campo1 son: -1 y 20
Los posibles valores de Tabla2.Campo1 son: 4 y 12


Ahora, necesito convertir esos valores de -1 y 20 del CAMPO1 de la TABLA1 a un equivalente en Cadena y los de la TABLA2 por igual,

-------------------------------------------------------
CONVERSION DE DATOS T1.Campo1
-------------------------------------------------------
SELECT t1.campo1, Conversión =
case t1.campo

when -1 then 'CADENA 1'
when 20 then 'CADENA 2'
from tabla1

-------------------------------------------------------
CONVERSION DE DATOS T2.Campo1
-------------------------------------------------------
SELECT t2.campo1, Conversión =
case t1.campo1

when -1 then 'CADENA 3'
when 20 then 'CADENA 4'
from tabla2
-------------------------------------------------------

Hasta aqui ya tengo las 2 consultas funcionando sin problema, pero a partir de aqui es donde comienza el problema,


1.- Necesito que en una columna adicional haga un comparacion de:

Si:

T1.Campo1 = 'CADENA 1' y T2.Campo1 = 'CADENA 4' Nueva_Columna = CADENA 1 + CADENA 4


Ya intente hacer la suma de las cadenas dentro de los Casos pero me arroja este error.

Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.


Alguna pista???
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

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por Isaias (4557 intervenciones) el 25/05/2016 22:36:36
Cual es su T-SQL que le manda mensaje de error
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
sin imagen de perfil

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por alan (4 intervenciones) el 25/05/2016 22:59:56
Buena tarde, gracias por responder.

Es la siguiente.

1
2
3
4
5
6
7
8
9
SELECT columna_nueva=
 
CASE tabla1.campo1
when 10040 then (SELECT Aislamiento= CASE tabla2.campo1 when  10050 then 'Ac' when  10060 then 'PP' when  -1 then 'N' end FROM tabla2) + ' '+'(ET)'
when -1 then ' '
when 10030 then ' '
end
FROM
Tabla1

Como se observa, quiero que unicamente en el caso 1 (when 10040) si se cumple me sume los caracteres de la Subconsulta.
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

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por Isaias (4557 intervenciones) el 25/05/2016 23:35:21
Ejecuta esta sola rutina y dime cuantos valores de devuelve

1
SELECT Aislamiento = CASE tabla2.campo1 when  10050 then 'Ac' when  10060 then 'PP' when  -1 then 'N' end FROM tabla2
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
sin imagen de perfil

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por alan (4 intervenciones) el 26/05/2016 00:10:11
Es una base de datos muy grande,

Me arroja 1689 registros.
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

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por Isaias (4557 intervenciones) el 26/05/2016 17:02:39
EXACTO !!!, ahi esta el error.

No puedes asignar a columna _nueva 1,689 valores

SELECT columna_nueva=
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por alan (4 intervenciones) el 26/05/2016 17:29:10
Ok gracias la aclaración..necesito incluir un WHERE en cada consulta para que me arroje un solo valor en cada caso,


La pregunta ahora es:

Mi sintaxis está bien para combinar las dos consultas??
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

Unir 2 tablas, comparar campos y generar una columna para sumarlos

Publicado por Isaias (4557 intervenciones) el 27/05/2016 01:48:39
¿Como se UNEN table1 y table2? (porque campo)
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