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

mostrar nombres sin duplicados.

Estas en el tema de mostrar nombres sin duplicados. en el foro de ASP Clásico en Foros del Web. Hola a todos, tengo una base de datos en access con varios clientes y sus respectivos datos... lo que pasa es que tengo repetido el ...
  #1 (permalink)  
Antiguo 03/07/2002, 12:30
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
mostrar nombres sin duplicados.

Hola a todos,

tengo una base de datos en access con varios clientes y sus respectivos datos... lo que pasa es que tengo repetido el mismo cliente varias veces..

necesito mostrar en una pagina todos los clientes con su direccion, telefono y codigo, pero me sale todos los clientes con sus datos bien, pero el problema es que me salen 10 o 20 veces el mismo nombre con los mismos datos,


no hay forma de hacer que solo me aparezca una vez por cliente, cada datos? osea que los que tengan el nombre igual solo los muestre una vez y enfrente el telefono, direccion y codigo?


gracias por todo

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #2 (permalink)  
Antiguo 03/07/2002, 12:36
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 8 meses
Puntos: 3
Re: mostrar nombres sin duplicados.

Hola, creo que puede mejorar la consulta SQL a la bd. Selecciona por la clave primaria de la tabla o consulta.

select * FROM tabla where id='&quot;&amp; id &amp;&quot;' AND otro campo = algo

Esto en caso de que la clave primaria se componga de 2 campos.

Bueno espero que te sirva. saludos
  #3 (permalink)  
Antiguo 03/07/2002, 12:45
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

creo que no me entendiste muy bien o no me supe explicar...


el caso es que en mi base de datos manejo SOLO los campos cliente, direccion, codigo y factura.

pero ese mismo cliente tengo que ponerlo varias veces en la bd osea que aparece varias veces el cliente con la misma direccion y mismo codigo, lo que deseo hacer es que en una pagina me aparezca si hay 20 clientes iguales osea con el mismo nombre aparezca SOLO una vez, y en frente doreccion, tel, codigo...
y debajo aparezca el cliente que siga, pero no las 20 veces que esta en la base de datos sino una vez por nombre...

me hago entender?


GRACIAS POR LA COLABORACION
ESPERO ME PUEDAN AYUDAR.

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #4 (permalink)  
Antiguo 03/07/2002, 12:57
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 8 meses
Puntos: 3
Re: mostrar nombres sin duplicados.

hola, pues a eso me refería,

Que tienes 20 clientes iguales pero me imagino que algún dato de todo el registro debe variar, tal vez el email, o la hora de llegada.

Entonces hacer la consulta con ese campo que es diferente para que sólo muestre un solo registro.

Ahora, si son todos los registros iguales, con el mismo código, y todos los campos iguales, no le veo sentido a repetir un usuario en la bd.

suerte
  #5 (permalink)  
Antiguo 03/07/2002, 13:10
 
Fecha de Ingreso: mayo-2002
Mensajes: 197
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: mostrar nombres sin duplicados.

Buenas, para eso esta la funcion:

Select Distinct nombre From clientes Order By nombre

El cual te mostrara solo una vez los distintos nombres de la tabla clientes y ordenados por orden alfabetico.

Un saludo.
  #6 (permalink)  
Antiguo 03/07/2002, 18:35
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

Hola
usé esto:
Select Distinct cliente, direccion, telefono From clientes Order By cliente


pero solo me muestra esos datos que son iguales pero tengo otro campo que es facturas que es el que cambia y asi no me funciona,

si coloco esto

Select Distinct cliente From clientes Order By cliente

no me muestra los otros datos

como hago para que me muestre los datos que son iguales una sola vez y los datos que cambian tambien.. pero debajo
por ejemplo

tengo un cliente repetido varias veces en mi bd y con lo que me explicaste me lo muestra una sola vez, hasta alli vamos bien

pero hay un campo que es el que cambia que se llama facturas, quiero que me aparezcan todas las facturas osea todos los datos que hay en facturas debajo del cliente..


gracias por toda la colaboracion.




<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #7 (permalink)  
Antiguo 03/07/2002, 19:01
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: mostrar nombres sin duplicados.

vas a atener que hacerlo por comparaciones..
Algo así debería funcionar aunque no lo probé, pero es la idea:


Código:
&lt;%
Select cliente, direccion, telefono, factura From clientes Order By cliente

Registro_Actual = &quot;&quot;

Response.Write &quot;&lt;table&gt;&quot;

Do while not rs.eof

If Rs(&quot;Cliente&quot;) &lt;&gt; Registro_Actual then
Response.Write &quot;&lt;tr&gt;&lt;td&gt;&quot; &amp; Rs(&quot;Cliente&quot;) &amp; &quot;&lt;/td&gt;&lt;td&gt;&quot; &amp; Rs(&quot;direccion&quot;) &amp; &quot;&lt;/td&gt;&lt;td&gt;&quot; &amp; Rs(&quot;telefono&quot;) &amp; &quot;&lt;/td&gt;&lt;td&gt;&quot; &amp; Rs(&quot;factura&quot;) &amp; &quot;&lt;/td&gt;&lt;/tr&gt;&quot;
Else
Response.Write &quot;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&quot; &amp; Rs(&quot;factura&quot;) &amp; &quot;&lt;/td&gt;&lt;/tr&gt;&quot;
End if

Registro_Actual = Rs(&quot;Cliente&quot;)

rs.movenext
loop

Response.Write &quot;&lt;/table&gt;&quot;
%&gt;
Aunque la estructura de tu BD es :-p :-p :-p... estás duplicando datos innecesariamente cuando en realidad deberías tener dos tablas relacionadas por el ID del cliente, una con los datos del cliente y la otra con las facturas que el cliente tenga

saludos
  #8 (permalink)  
Antiguo 05/07/2002, 11:26
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

Hola

muchas gracias por la colaboracion, era justo lo que necesitaba..


gracias..

otra preguntica si no es mucha molestia..

ya esta cada cliente muestra solo su nombre y enfrente coloque telefono y el valor de sus facturas.
supongamos que sean 10 facturas me aparecen solo una vez el nombre del cliente y con las 10 facturas..
mi pregunta es ...como hago para que me sume todas esas facturas.

y tambien que me sume el resultado de todas esas facturas con los resultados de las facturas de los otros clientes?



gracias por todo.

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #9 (permalink)  
Antiguo 05/07/2002, 13:17
 
Fecha de Ingreso: diciembre-2001
Ubicación: Rosario (SF)
Mensajes: 193
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: mostrar nombres sin duplicados.

lexus si usas access hay una forma mas fácil que es creando una consulta agrupando, antes que hacer las comparaciones registro por registro que te va a demorar 2 horas:la consulta seria la siguiente:

SELECT Tabla.Nombre, First(Tabla.Telefono) AS telefono
FROM Tabla GROUP BY Tabla.Nombre

si no me entiendes crea una consulta en access y pones el simbolo de sumatoria que esta arriba yt seleccionas por cual agrupar, luego de los otros campos tenes que marcar que valor quieres de los que agrupas, el primero o último o que sume, pero debes seleccionar uno si o si, saludos y suerte

Facu
  #10 (permalink)  
Antiguo 05/07/2002, 14:27
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: mostrar nombres sin duplicados.

Si facu, pero no le sirve (me parece!)

El tiene una tabla como la siguiente....

Código:
NOMBRE | DIRECCION | IMPORTE FACTURA
Diego  | gaboto 55 | 56
Diego  | gaboto 55 | 12
Diego  | gaboto 55 | 33
Pablo  | mitre 32  | 22
Pablo  | mitre 32  | 10
Pablo  | mitre 32  | 11
... y quiere mostrar los datos de esta manera...


Código:
NOMBRE | DIRECCION | IMPORTE FACTURA
Diego  | gaboto 55 | 56
       |           | 12
       |           | 33
Pablo  | mitre 32  | 22
       |           | 10
       |           | 11

... por eso le propuse hacerlo de esa manera.
Ahora bien, para el tema del total de cada cliente y el total general, podés hacer algo así:

Código:
&lt;%
Select cliente, direccion, telefono, factura From clientes Order By cliente

Registro_Actual = &quot;&quot;

Response.Write &quot;&lt;table&gt;&quot;

Do while not rs.eof

If Rs(&quot;Cliente&quot;) &lt;&gt; Registro_Actual then
Response.Write &quot;&lt;tr&gt;&lt;td&gt;&quot; &amp; Rs(&quot;Cliente&quot;) &amp; &quot;&lt;/td&gt;&lt;td&gt;&quot; &amp; Rs(&quot;direccion&quot;) &amp; &quot;&lt;/td&gt;&lt;td&gt;&quot; &amp; Rs(&quot;telefono&quot;) &amp; &quot;&lt;/td&gt;&lt;td&gt;&quot;
Else
Response.Write &quot;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&quot;
End if

Response.Write Rs(&quot;factura&quot;) &amp; &quot;&lt;/td&gt;&lt;/tr&gt;&quot;

If Rs(&quot;Cliente&quot;) &lt;&gt; Registro_Actual then
	Total_Cliente = 0
	Total_Cliente = Total_Cliente + Rs(&quot;Factura&quot;)
Else
	Total_Cliente = Total_Cliente + Rs(&quot;Factura&quot;)
End if

Total_General = Total_General + Rs(&quot;Factura&quot;)

Registro_Actual = Rs(&quot;Cliente&quot;)

rs.movenext
loop

Response.Write &quot;&lt;/table&gt;&quot;
%&gt;
Y en las variables Total_Cliente y Total_General tenés los datos... ahora pensá como hacés para mostrarlos ;)

saludos
  #11 (permalink)  
Antiguo 05/07/2002, 15:29
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

GRacias facu y en especial a dazuaga, me ha servido mucho tu ayuda, voy a probar lo ultimo que me dices y te aviso como me va....


gracias por todo


lexus.

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #12 (permalink)  
Antiguo 06/07/2002, 18:36
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.


CLIENTE_|DIAS|MESES
jUAN____|1000|500
________|2000|200
________|5000|100
TOTAL___|8000| 800
CARLOS__|2000| 1000
TOTAL___| 8000| 800



Como vez hay dos casos osea 2 tipos de clientes, los que tienen una factura y los que tienen varias, por ejemplo juan tiene 3 facturas , y carlos solo tiene 1 , como hago para ubicar los resultados de la suma de los valores de dias o meses respectivamente debajo de cada cliente...

estos datos los voy a utilizar para al final colocar el total de la suma de los totales x cliente

cliente ______|dias |MESES
total clientes|16000|1600


Espero me entiendan asi y me puedan dar una mano,

DAZUAGA el codigo que me mandas esta perfecto pero no se como hacer para ubicar los resultados para cada caso..

graccias por la colaboracion que me puedan dar.
disculpen tanta molestadera pero es que esto me tiene jodido.

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #13 (permalink)  
Antiguo 07/07/2002, 14:21
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

Porfa alguien que me colabore, he intentado por todos los lados y no logro ubicar el RESULTADO DEL TOTAL POR CADA CLIENTE.



gracias.

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #14 (permalink)  
Antiguo 07/07/2002, 22:08
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Re: mostrar nombres sin duplicados.

recién me conecto a internet este fin de semana (que ya termina ) desde el viernes pasado y la verdad que estoy demaciado relajado como para ponerme a pensar en códigos ;)

mejor mañana mandame un mail con tu código completo a [email protected] (o postealo en este mensaje) y veo/mos como hacerlo... te parece?

saludos
  #15 (permalink)  
Antiguo 10/07/2002, 21:42
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

Hola dazuaga te mande el coidgo asp a tu email, por favor cuando podas o tengas tiempo me ayudas? la verdad es que me quedo grande ese codigo no se como hacerlo



gracias por la colabroacion que me puedas o puedan dar..


<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #16 (permalink)  
Antiguo 14/07/2002, 23:04
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
Re: mostrar nombres sin duplicados.

Hola por favor alguien que me ayude...

<img src="http://www.lexus.com/images/nav/nav_i_logo.gif" width="109" height="47" alt="Lexus" border="0">
  #17 (permalink)  
Antiguo 14/07/2002, 23:18
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: mostrar nombres sin duplicados.

hi, te agregue a mi MSN, mañana por la tarde me conecto, en estos momentos no te puedo ayudar por que tengo que estudiar para un examen.

Saludos

<center>
<p><a href=http://comunidadguru.com><img border=0 src=http://comunidadguru.com/urjose.gif></a></p>
</center>
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 23:41.