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

Registros Repetidos

Estas en el tema de Registros Repetidos en el foro de SQL Server en Foros del Web. Hola La siguiente consulta me devuelve los registros que tienen mas de uno repetido con el mismo nombre, es decir solo me los muestra una ...
  #1 (permalink)  
Antiguo 08/10/2007, 16:37
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Registros Repetidos

Hola

La siguiente consulta me devuelve los registros que tienen mas de uno repetido con el mismo nombre, es decir solo me los muestra una vez.

SELECT razon_social FROM BASE WHERE (razon_social LIKE '[a-z]%') Group By razon_social Having count(razon_social)<1

Pero me muestra obviamente solamente el campo razon_social, y quiero que me muestre TODO en base al criterio anterior de que solo muestre los que tienen mas de uno repetido, lo intenté con un IN, pero no me arroja bien el resultado

SELECT * FROM BASE WHERE razon_social in(SELECT razon_social FROM BASE WHERE (razon_social LIKE '[a-z]%') Group By razon_social Having count(razon_social)>1) order by razon_social

Me podrían ayudar?? gracias,...saludos cordiales!!
  #2 (permalink)  
Antiguo 08/10/2007, 17:09
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Registros Repetidos

Si no te arroja bien el resultado, ¿Que es lo que te arroja?
  #3 (permalink)  
Antiguo 08/10/2007, 17:52
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Registros Repetidos

Podrías plantear mejor tu consulta? a como lo veo y como te entiendo, la segunda consulta debiera darte el resultado esperado.... es decir, te devolverá todos los registros se duplican por Razón Social, y todos los datos de los registros repetidos....


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #4 (permalink)  
Antiguo 09/10/2007, 09:09
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Re: Registros Repetidos

Hice una prueba y en la primer consulta me devuelve 3 registros (cada uno se repite n veces pero ahi solamente me muestra uno)

SELECT razon_social FROM BASE WHERE (razon_social LIKE '[a-z]%') Group By razon_social Having count(razon_social)>1


primero
segundo
tercero


En la segunda consulta lo que me muestra son las n veces de cada uno de esos 3 registros


SELECT * FROM BASE WHERE razon_social in(SELECT razon_social FROM BASE WHERE (razon_social LIKE '[a-z]%') Group By razon_social Having count(razon_social)>1) order by razon_social

primero
primero
primero
segundo
segundo
tercero
tercero
tercero
tercero

Y quiero que me muestre:

primero direccion telefono cargo
segundo direccion telefono cargo
tercero direccion telefono cargo

me explico? lo intenté con un distinct dentro del IN, pero tampoco funcionó, alguna sugerencia?? Gracias...slds!!!!
  #5 (permalink)  
Antiguo 10/10/2007, 07:09
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Registros Repetidos

A ver, segun entiendo tu tienes en tu BD:

Campo1, Campo2, Campo3, Campo4
=============================
Primero, DireccionA, TelefonoA, CargoA
Primero, DireccionB, TelefonoB, CargoB
Segundo, DireccionC, TelefonoC, CargoC
Segundo, DireccionD, TelefonoD, CargoD

(donde el primer campo sería el que tu llamas razón social)

y lo que necesitas que te muestre es solo 1 registro de de cada Campo1 sin repetir es así?..... si esto es así.... como esperas que SQL adivine cual de los dos registros que tienes repetidos te interesa?


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #6 (permalink)  
Antiguo 10/10/2007, 11:25
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Registros Repetidos

Hola..

de:
.
Campo1, Campo2, Campo3, Campo4
=============================
Primero, DireccionA, TelefonoA, CargoA
Primero, DireccionB, TelefonoB, CargoB
Segundo, DireccionC, TelefonoC, CargoC
Segundo, DireccionD, TelefonoD, CargoD


quiero que me arroje

Campo1, Campo2, Campo3, Campo4
=============================
Primero, DireccionA, TelefonoA, CargoA
Segundo, DireccionC, TelefonoC, CargoC


Sin importar cual campo me arroja, el chiste es que me mande uno solamente, y si es necesario que le diga al SQL cual es el que quiero pues seria el que tenga la fecha mas actual..Ojala puedas ayudarme, gracias por responder. slds!!
  #7 (permalink)  
Antiguo 10/10/2007, 16:59
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Registros Repetidos

¿Cual es tu campo LLAVE (PK)?, Si tienes un campo FECHA, como se llama
  #8 (permalink)  
Antiguo 10/10/2007, 17:09
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Registros Repetidos

Cita:
Iniciado por iislas Ver Mensaje
¿Cual es tu campo LLAVE (PK)?, Si tienes un campo FECHA, como se llama
MI PK es ID, y el campo fecha se llama fecha_registro, pero aqui el problema es que tengo que hacerlo por la razon social, ya que en mi base puede aparecer asi:

id razon_social
===========
2 empresa1
34 empresa1
156 empresa1


me explico? es decir, realmente no tengo una PK como tal, seria la empresa.
  #9 (permalink)  
Antiguo 10/10/2007, 17:37
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Registros Repetidos

Si, pero si tomamos como PK tu ID, estamos del otro lado, ahi va.....

Cita:
SELECT * FROM
Tutabla t1 join
(SELECT ID, MAX(fecha_registro) as fecha FROM Tutabla GROUP BY ID) AS X
ON t1.ID = x.ID
AND t1.fecha_registro = x.fecha
Dime si te funciona.
  #10 (permalink)  
Antiguo 10/10/2007, 18:14
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Registros Repetidos

IISLAS

Esa consulta no omite los registros repetidos, te traería lo mismo dado que el ID es unico....

en todo caso la consulta quedaría así no?

Código:
Select *
From Base Z
Where Id In (
	Select Max(Id)
	From Base A
	Where Exists(
		Select 1
		From Base B
		Where A.Razon_Social = B.Razon_Social
			And B.Razon_Social Like '[a-z]%'
		Group By B.Razon_Social
		Having Count(1) > 1
	)
	Group By A.Razon_Social
)
Dependiendo de tu BD, esta consulta va a tardar....

me avisas si funciona!

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #11 (permalink)  
Antiguo 10/10/2007, 18:21
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Registros Repetidos

¿Contando que hace un JOIN con el MAX(fecha_registro)?, lastima que no tengo los registros para probarlo
  #12 (permalink)  
Antiguo 11/10/2007, 09:32
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Re: Registros Repetidos

Muchas gracias, ya quedó con esa consulta que me mandaste, en verdad te lo agradezco, slds!!
  #13 (permalink)  
Antiguo 11/10/2007, 13:10
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Registros Repetidos

uhm! no habpia visto el Join contra ese Max.... :p así creo que si funciona!

No entendí! cual funciono??? me intrigaaa!!!


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
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 01:17.