Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta para traer datos repetidos

Estas en el tema de Consulta para traer datos repetidos en el foro de Mysql en Foros del Web. Cordial Saludo. debo comparar dos tablas que tienen 3 campos: nit,fecha y valor; debo mostrar los que esten en ambas tablas, adicional las que no ...
  #1 (permalink)  
Antiguo 10/03/2009, 15:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 9 meses
Puntos: 2
Consulta para traer datos repetidos

Cordial Saludo.

debo comparar dos tablas que tienen 3 campos: nit,fecha y valor; debo mostrar los que esten en ambas tablas, adicional las que no estan. La comparacion debe ser por valor.

Ejemplo:

Tabla1---------------------------------Tabla2
Nit Fecha Valor Nit Fecha Valor
1 11012009 100 1 11012009 100
2 12012009 100 1 11012009 100
3 13012009 100

Este es el query que estoy haciendo para mostrar las coincidencias:
select distinct ValorBanco from DataBanco where ValorBanco in(select ValorSistema from DataSistema)

pero me trae los siguientes datos
Nit Fecha Valor
1 11012009 100
2 12012009 100
3 13012009 100


cuando solo deberia traer
1 11012009 100
2 12012009 100


y mostrar como no coincidente el registro:
3 13012009 100

Alguien me puede colaborar???

Agradezco la ayuda y sugerencias que me puedan brindar.
  #2 (permalink)  
Antiguo 10/03/2009, 16:45
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 18 años, 2 meses
Puntos: 9
Respuesta: Consulta para traer datos repetidos

Hola prueba algo asi:
Código:
SELECT DISTINCT ds.ValorBanco FROM DataBanco db JOIN DataSistema ds ON db.ValorBanco = ds.ValorBanco
Saludos
__________________
->Aprender es un proceso que incluye el error..
  #3 (permalink)  
Antiguo 11/03/2009, 08:00
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 9 meses
Puntos: 2
Respuesta: Consulta para traer datos repetidos

Cordial saludo cala932

te agradezco la respuesta pero esa consulta hace lo mismo; me trae los 3 valores de 100 y no 2 que seria lo mas logico.


Agradezco de antemano la ayuda y sugerencias que me puedan brindar.
  #4 (permalink)  
Antiguo 11/03/2009, 12:46
Avatar de pacmanaman  
Fecha de Ingreso: marzo-2009
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Consulta para traer datos repetidos

Fijate que tu ejemplo, esta mal ...

Nit Fecha Valor Nit Fecha Valor
1 11012009 100 1 11012009 100
2 12012009 100 1 11012009 100
3 13012009 100

ES ...

Nit Fecha Valor Nit Fecha Valor
1 11012009 100 1 11012009 100
2 12012009 100 2 12012009 100
3 13012009 100


Esto te trae los registros que estan en ambas tablas.

Código:
select 
	t1.*,
	t2.* 
from 
	tabla t1
	join tabla2 t2 on t2.nit = t1.nit
y esta consulta te trae los registros que no estan en ambas tablas ...

Código:
select 
	t1.* 
from 
	tabla1 t1
where 
	t1.nit not in(select nit from tabla2 as t2)

union

select 
	t2.* 
from 
	tabla2 t2
where 
	t2.nit not in(select nit from tabla1 as t1)

Última edición por pacmanaman; 11/03/2009 a las 13:06
  #5 (permalink)  
Antiguo 11/03/2009, 12:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Consulta para traer datos repetidos

Para los coincidentes
SELECT db.nit, db.fecha, db.valorbanco FROM databanco db inner join `datasistema` ds on db.fecha = ds.fecha AND db.valorbanco = ds.valorsistema

Para los presentes en databanco y no en datasistema
SELECT db.nit, db.fecha, db.valorbanco
FROM databanco db
LEFT JOIN `datasistema` ds ON db.fecha = ds.fecha
AND db.valorbanco = ds.valorsistema
WHERE ds.valorsistema IS NULL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.