Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Detectar en un label registros con valores iguales y mostrarlo como uno solo (https://www.clubdelphi.com/foros/showthread.php?t=74379)

Rofocale 15-06-2011 17:00:40

Detectar en un label registros con valores iguales y mostrarlo como uno solo
 
Hola a todos tengo una pregunta tengo un formulario donde visualizo la deuda de los clientes, estos clientes pueden pagar en 2,3,4 etc.. partes

estos datos estan almacenados en una tabla de la siguiente forma
Código Delphi [-]
venta cliente numpago estatus
 57       6         1/2         D
 57       6         2/2         D
 60       4         1/2         P
 60       4         2/2         D
 62       2         1/3         P
 62       2         2/3         P
 62       2         3/3         P

Bueno donde estatus la D es debe y P pagado ahora quisiera poner en un label la cantidad de personas que deben en este ejemplo deben 2 personas quisiera que salga el numero 2 como puedo hacer para que 57,57 y estatus dependiendo si es pagado o debe me muestre que es un solo cliente

muchas gracias

Caro 15-06-2011 17:18:17

Hola Rofocale, la consulta sql que hagas tendría que ser mas o menos así:

Código SQL [-]
Select Count(cliente) as cant
From (Select cliente From tabla Where estatus='D' group by cliente)

Saluditos

defcon1_es 15-06-2011 17:36:25

Se me adelantó Caro :D

Código SQL [-]
Select Count(cliente) as cant 
From (Select DISTINCT cliente From tabla Where estatus='D' group by cliente)

La solución que da Caro es perfectamente válida, pero yo le pondría la condición DISTINCT.

Rofocale 15-06-2011 18:38:51

gracias a los 2 funciona :D

roman 15-06-2011 18:56:42

Cita:

Empezado por defcon1_es (Mensaje 403858)
La solución que da Caro es perfectamente válida, pero yo le pondría la condición DISTINCT.

En realidad, la condición sobra, porque la subconsulta agrupa por cliente.

No sé si es estándar, pero en MySQL se puede evitar el uso de una subconsulta:

Código SQL [-]
select count(distinct cliente) from tabla
where estatus = 'D'

// Saludos

Casimiro Notevi 15-06-2011 19:53:53

Cita:

Empezado por roman (Mensaje 403886)
No sé si es estándar, pero en MySQL se puede evitar el uso de una subconsulta:
Código SQL [-]select count(distinct cliente) from tabla where estatus = 'D'

// Saludos

Sí, debe ser estandar, en firebird funciona igualmente.

Caro 15-06-2011 19:55:53

Cita:

Empezado por roman (Mensaje 403886)
No sé si es estándar, pero en MySQL se puede evitar el uso de una subconsulta.......

Hola Román, yo creo que si es estándar, me gusta mas de la forma que has puesto :).

Saluditos

defcon1_es 16-06-2011 09:48:20

Wow, siempre se aprende algo nuevo.
No se me ocurrió hacerlo como indica Román.

Para optimizar la consulta de Román, lo único que hace falta es crear un índice sobre el campo ESTATUS, si no lo tienes ya creado.


La franja horaria es GMT +2. Ahora son las 18:58:47.

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