SQL Server - Consulta de 6 campos

 
Vista:

Consulta de 6 campos

Publicado por Oscar Leiton (2 intervenciones) el 18/10/2006 00:30:34
me explico:
tengo dos tablas TB1 y TB2, en la primera tengo 6 campos, en la segunda tengo los mismos 6 campos.

tengo que comparar los campos de TB1 contra los campos de TB2.
y extraer todos aquellos registros en que ALMENOS cinco de los seis campos coincidan.

Ya lo intente con un Select + Union,...., tambien lo intente con Select + Inner Join.
Talvez estoy hacicendo mal la consulta, PUEDEN AYUDARME PLEASE.?

Tengo varios dias sin poder realizar la consulta.
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 de 6 campos

Publicado por jesus osuna (22 intervenciones) el 18/10/2006 01:39:23
esta es mi idea no lo hago porque no tengo tanto tiempo pero prueba esto

select * into t1tmp from t1 group by c1,c2,c3,c4,c5,c6 order by c1,c2,c3,c4,c5,c6
select * into t2tmp from t2 group by c1,c2,c3,c4,c5,c6 order by c1,c2,c3,c4,c5,c6

order nas las 2 tablas para que quede asi
1,2,3,4,5,6 t1
1,2,3,4,5,9 t2

despues haces

select t1.* from t1,t2 where t1.c1=t2.c1 and t1.c2=t2.c2 and t1.c3=t2.c3 ............................and t1.c5=t2.c5

saco todos los que coinciden hasta los primeros 5
y luego los unes con todos losque coinciden los 6 campos

union

select t1.* from t1,t2 where t1.c1=t2.c1 and t1.c2=t2.c2 and t1.c3=t2.c3 ............................and t1.c6=t2.c6

espero que te sirva de algo

Me dices si te funciona
o enque fallé
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 de 6 campos

Publicado por Oscar Leiton (2 intervenciones) el 18/10/2006 16:13:18
Graicas Jesus, voy a probarlo hoy y te cuento
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 de 6 campos

Publicado por OScar leiton (1 intervención) el 26/10/2006 00:02:07
Hola Jesus, gracias por tu ayuda y disculpa la tardanza...., estuve intentando obtener la consulta, ya casi le llego, pero tengo algo mal en la setencia SQL, a ver si me puedes ayudar....

Esta es la sentencia SQL que estoy intentando:

select zfi2.record,Zfi2.Account,Zfi2.Vendorname,Zfi2.Code,
Zfi2.PstDate,Zfi2.Cur, Zfi2.Amount,Zfi2.DocDate,Zfi2.Reference,

min(case when ZFI2.Code = tabla.code and ZFI2.Amount = tabla.Amount and ZFI2.Cur = tabla.Cur and ZFI2.Reference = tabla.Reference and ZFI2.DocDate = tabla.DocDate then 'rel1' end)

min(case when ZFI2.Code = tabla.code and ZFI2.Account = tabla.Account and ZFI2.Cur = tabla.Cur and ZFI2.Reference = tabla.Reference and ZFI2.DocDate = tabla.DocDate then 'rel1' end),

min(case when ZFI2.Code = tabla.code and ZFI2.Account = Tabla.Account and ZFI2.Amount = tabla.Amount and ZFI2.Reference = tabla.Reference and ZFI2.DocDate = tabla.DocDate then 'rel1' end),

min(case when ZFI2.Code = tabla.code and ZFI2.Account = Tabla.Account and ZFI2.Amount = tabla.Amount and ZFI2.Cur = tabla.Cur and ZFI2.DocDate = tabla.DocDate then 'rel1' end),

min(case when ZFI2.Code = tabla.code and ZFI2.Account = Tabla.Account and ZFI2.Amount = tabla.Amount and ZFI2.Cur = tabla.Cur and ZFI2.Reference = tabla.Reference then 'rel1' end),

min(case when ZFI2.Account = Tabla.Account and ZFI2.Amount = tabla.Amount and ZFI2.Cur = tabla.Cur and ZFI2.Reference = tabla.Reference and ZFI2.DocDate = tabla.DocDate then 'rel1' end

from ZFI2, ZFI2 as tabla
Group By zfi2.record,Zfi2.Account,Zfi2.Vendorname,Zfi2.Code,
Zfi2.PstDate,Zfi2.Cur, Zfi2.Amount,Zfi2.DocDate,Zfi2.Reference
order by Zfi2.Reference desc


lo que deseo es obtener registros duplicados en los cuales coincidan al menos 5 campos,..., segun entiendo bien el minus, deberia filtrarme los datos según cada sentencia SELECT, es decir, los que obtengo en el primer select no deberia obtenerlos en el segundo select, y asi con la restantes sentencias Select.....pero sin embargo, con esta sentencia me extrae todos los registros de la tabla, no realiza el filtro.....NO ENTIENDO EN QUE FALLO...talvez tu le atines....de nuevo gracias por la ayuda
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