Foros del Web » Programando para Internet » ASP Clásico »

distinct

Estas en el tema de distinct en el foro de ASP Clásico en Foros del Web. holas, tengo un problema.. hago un string q habre dos tablas (inner join) <% select * from cliente as cli inner join cotizacion as cot ...
  #1 (permalink)  
Antiguo 02/12/2003, 02:02
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
distinct

holas, tengo un problema.. hago un string q habre dos tablas (inner join)

<%
select * from cliente as cli inner join cotizacion as cot on cli.id_cliente = cot.id_cliente where cli.habilitado = 'Y' and cot.estado = 'P' or cot.estado = 'R' order by fechahora desc
%>

en la tabla cotizacion hay un campo q se llama "numero" y en la tabla cliente hay uno q se llama "login" y "id_cliente", en la tabla cotizacion tb hay un campo llamado "id_cliente", este tiene los mismos id's de la tabla cliente y tb está el campo "numero"...lo q no quiero q pase es q se repitan, en el momento de mostrar el resultado del string, es cuando el campo "numero" se repite en el id_cliente(dentor de la tabla cotizacion) solo quiero q se muestre una vez...

x ejemplo esto lo tengo en la tabla cotizacion

id_cliente numero
1 2
1 2
1 2

1 3
1 3

2 1
2 1
2 1
2 1
2 1

2 2
2 2
2 2

en la tabla cliente

id_cliente login
1 usuario_uno

2 usuario_dos

entonces quiero q se muestre en la página asi... en una tabla

login numero
usuario_uno 2
usuario_uno 3
usuario_dos 1
usuario_dos 2

espero me hayan entendido
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #2 (permalink)  
Antiguo 02/12/2003, 05:12
 
Fecha de Ingreso: noviembre-2002
Mensajes: 80
Antigüedad: 21 años, 6 meses
Puntos: 0
Debes poner DISTINCTROW para que no se repitan los registros. Para que esto funcione, asegurate de incluir los campos en el SELECT que cumplan la condicion, esto es, que no aparezca un campo que cambie en cada linea de los seleccionados.

Si solo coges el campo con codigo de cliente y numero y le pones "SELECT DISTINCTROW ..." no te repetira las lineas.

Salu2.
  #3 (permalink)  
Antiguo 02/12/2003, 12:31
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
disculpa..no entiendo.. no sé si me puedas dar un ejemplo, gracias
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #4 (permalink)  
Antiguo 03/12/2003, 01:56
 
Fecha de Ingreso: noviembre-2002
Mensajes: 80
Antigüedad: 21 años, 6 meses
Puntos: 0
SELECT DISTINCTROW CLIENTE.LOGIN,COTIZACION.NUMERO FROM CLIENTE INNER JOIN COTIZACION ON CLIENTE.ID_CLIENTE = COTIZACION.ID_CLIENTE WHERE((CLIENTE.HABILITADO = 'Y') AND (COTIZACION.ESTADO = 'P' OR COTIZACION.ESTADO = 'R')) ORDER BY XX.FECHAHORA DESC;

Como te comentaba, tienes que poner en el SELECT solo los campos necesarios de cada tabla. Si seleccionas todos los campos, te repetira registros porque habra algun campo que le haga distinto de los demas. No se suele poner el * que indica todos los campos de una tabla porque se repetiran muchos campos.

Siempre que puedas delimita los AND y los OR entre parentesis.

No he puesto el nombre de la tabla en XX.FECHAHORA dado que no se a que tabla pertenece.

Espero haberte ayudado.

Salu2.
  #5 (permalink)  
Antiguo 03/12/2003, 18:50
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
gracias.. si me sirve:D
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
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 22:01.