Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Escoger Solo 1 registro de una lista de Duplicados

quiza el titulo no sea muy descriptivo pero la idea es la siguiente

Asi estan los datos

Cita:
V02 002-0021049 00003
V02 002-0021049 00015
V02 002-0021049 00023
V02 002-0021049 00033
V03 003-0019984 00002
V03 003-0019984 00012
V06 006-0008190 00014
V06 006-0008190 00014
Asi quiero que salga
Cita:
V02 002-0021049 00003
V03 003-0019984 00002
V06 006-0008190 00014
si es posible me gustaria tambien que pueda aparecer el numero de registro o el Recno
Uso MS SQL SERVER

Estaba Pensando en un Select Distinct pero lo que no se es como capturar el recno
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 16-11-2011 a las 05:40:15.
Responder Con Cita
  #2  
Antiguo 16-11-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
El RecNo para ti cual es de los tres datos que muestras, también el RecNo te lo da Table, Query, ADOQuery, el valor de RecNo es secuencia en los componentes que te he mencionado.
Responder Con Cita
  #3  
Antiguo 16-11-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Hola.

Que yo sepa el recno solo existe en las bases de datos de escritorio y que lo más similar en las bases de datos cliente/servidor es el bookmark pero no creo que lo puedas usar en una instrucción sql.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 16-11-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Código SQL [-]
select distinct campo1, campo2, campo3 from tabla
Esto te devolverá lo que pides.
El Número de Registro lo pone Delphi. En este caso, del 1 al 3.
Código:
SELECT común
RecNo, Campo1, Campo2, Campo3
1 V02 002-0021049 00003
2 V02 002-0021049 00015
3 V02 002-0021049 00023
4 V02 002-0021049 00033
5 V03 003-0019984 00002
6 V03 003-0019984 00012
7 V06 006-0008190 00014
8 V06 006-0008190 00014 

Con SELECT DISTINCT
RecNo, Campo1, Campo2, Campo3
1 V02 002-0021049 00003
2 V03 003-0019984 00002
3 V06 006-0008190 00014
Responder Con Cita
  #5  
Antiguo 16-11-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por duilioisola Ver Mensaje
El Número de Registro lo pone Delphi. En este caso, del 1 al 3.
Pero esto ¿más que un número de registro es un número de orden, no?
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 16-11-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por duilioisola Ver Mensaje
Código SQL [-]
select distinct campo1, campo2, campo3 from tabla
Esto te devolverá lo que pides.
El Número de Registro lo pone Delphi. En este caso, del 1 al 3.
Código:
SELECT común
RecNo, Campo1, Campo2, Campo3
1 V02 002-0021049 00003
2 V02 002-0021049 00015
3 V02 002-0021049 00023
4 V02 002-0021049 00033
5 V03 003-0019984 00002
6 V03 003-0019984 00012
7 V06 006-0008190 00014
8 V06 006-0008190 00014 

Con SELECT DISTINCT
RecNo, Campo1, Campo2, Campo3
1 V02 002-0021049 00003
2 V03 003-0019984 00002
3 V06 006-0008190 00014
La SQL está mal, los datos que te devuelve son:

Cita:
RecNo, Campo1, Campo2, Campo3
1 V02 002-0021049 00003
2 V02 002-0021049 00015
3 V02 002-0021049 00023
4 V02 002-0021049 00033
5 V03 003-0019984 00002
6 V03 003-0019984 00012
7 V06 006-0008190 00014
y la SQL correcta es:
Código SQL [-]
SELECT
    M.CAMPO1
    ,M.CAMPO2
    ,(SELECT TOP 1 CAMPO3 FROM Tabla WHERE CAMPO2 = M.CAMPO2)
  FROM Tabla AS M
  GROUP BY M.CAMPO1, M.CAMPO2
y te devuelve
Cita:
1 V02 002-0021049 00033
2 V03 003-0019984 00002
3 V06 006-0008190 00014
Un saludo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Eliminar duplicados lista con mismos caracteres Paolo Varios 12 08-09-2008 10:11:24
seleccionar solo un registro m8estrella83 SQL 8 07-08-2006 08:51:12
mostrar SOLO cliente de los que tengo un sólo registro Giniromero SQL 15 11-06-2004 12:33:19
Escoger una palabra de una lista aleatoriamente DarkByte Varios 8 15-05-2004 10:45:04
Escoger en una tabla sólo los registros cuyo código es par lolobs SQL 3 25-09-2003 19:55:16


La franja horaria es GMT +2. Ahora son las 23:21:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi