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


0