SQL - AYUDA CON UN LEFT JOIN????

 
Vista:

AYUDA CON UN LEFT JOIN????

Publicado por Gabylu (16 intervenciones) el 21/09/2002 01:18:36

TENGO LA TABLA "A "Y LA TABLA "B" UNIRLAS POR UNA LLAVE EN COMUN Y GENERAR UNA TERCER TABLA LLAMADA C.
SI LOS DATOS EXISTEN EN "A " y "B" PONER EN UNA VARIABLE DE "C" EL NUMERO 1. SI EL DATO EXISTE SOLO EN "A " Y/O SOLO EN "B " PONER EL NUMERO 0.

YO LO SE HACER EN OTRO SISTEMA Y ESTO SERIA ASI.

Proc sort data=bd.A
BY llave
proc sort data=bd.B
by llave
Run;

DATA bd. C
MERGE bd. "A" (in=x) bd."B"(in=y)
BY llave en comun
if x=1 and y=1 then BANDERA=1
else if x=1 and y=0 then BANDERA=0
else x=0 and y=1 then BANDERA=0
run;

DONDE
bd= BASE DE DATOS DONDE ESTA LA TABLA
merge =Es la instruccion que une ambas tablas tanto A como B
sort=Antes de unir las tablas sorteamos A y B por la llave en comun

y generamos una nueva variable llamada bandera la cual esta en 1 o 0 de acuerdo a las condiciones.

Como haria esto CON SQL.

1.- Necesito usar Un Crete table o el LEFT JOIN Genera la nueva tabla.
2.- Como hago este SP.
3.- Existe alguna otra froma de hacerlo o como identificaria yo los datos nuevos de una tabla.



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:AYUDA CON UN LEFT JOIN????

Publicado por Gabylu (16 intervenciones) el 21/09/2002 01:53:15
QUE TAL ESTO CHICOS???

select adn.descripcion
from adn INNER JOIN local
on adn.codigo_Total=local.codigo_Total

mmm pero como marco los que existen an ambas tablas,
supongo que con un set variable=1 o algo asi.

PUES DONDE ANDAN??
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:AYUDA CON UN LEFT JOIN????

Publicado por Jim (1 intervención) el 21/09/2002 15:38:42
SELECT adn.Descripcion, isnull(L.Codigo_Total, -1) as Existe
FROM and LEFT JOIN local as L ON
adn.Codigo_Total = L.Codigo_Total

los valores del campo Existe varían segun si existen o no en la segunda tabla, si este valor es -1 significa que no existe (estoy presuponiendo que el campo Codigo_Total de la tabla Local contiene valores enteros superiores o iguales a 0) cualquier otro valor significa que si existe. No podes usar inner join porque eso solo te traería los registros para los que existe una relacion de existencia entre las dos tablas, para eso estan el Left Join y el Right Join.
Respecto de crear una tercera tabla con esto, usa algo asi:
SELECT ......... INTO TablaNueva FROM .....
Lo unico que tenes que tener cuidado es que no exista ya esta esta tabla y ademas que todos los campos tengan asignado un nombre
Espero que te sirva.
Saludos.
Jim.
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:AYUDA CON UN LEFT JOIN????

Publicado por Fabricio Rosanelli (4 intervenciones) el 28/09/2002 16:05:57
Hola Gaby, no se si resolviste tu problema pero aca te paso algo que te puede servir. Creo que es esto lo que buscas.

Saludos.

create table #a (Z int)
create table #b (Y int)

insert #a values (1)
insert #a values (2)
insert #a values (3)
insert #b values (1)
insert #b values (2)

select Z, Y, Existe = case when ( Z is not null and Y is not null) then 1
else 0
end
into #C
from #a A left join #b B on A.z = B.Y

select * from #c
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