Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   sql pesado o bloqueado (https://www.clubdelphi.com/foros/showthread.php?t=75187)

ingabraham 03-08-2011 20:05:59

sql pesado o bloqueado
 
Código SQL [-]
 select.  (select count(peso) From nacimiento where peso < 25000 ) as pesobajo 
 (select count(peso) From nacimiento where  peso> 25000 ) as buenpeso
From nacimiento
Esta consulta en la base datos firebird 2.0 se me bloquea no responde
No se si hay otra opción
Lo que hace es sacar de una tabla los menores peso y mayores de un campo numérico
Existen mas de mil registros como pudo hacer

oscarac 03-08-2011 20:44:03

y como quieres que se te muestre la informacion?
en 1 sola registro? en 2 registros?

prueba con esto

Código Delphi [-]
 
select Case when peso < 25000 then count(peso) else 0 as bajo, 
Case when peso > 25000 then count(peso) else 0 as bueno 
From nacimiento

ingabraham 04-08-2011 14:21:08

Código SQL [-]
select Case when peso < 25000 then count(peso) else 0 end as bajo, 
Case when peso > 25000 then count(peso) else 0 end  as bueno 
From nacimiento

Le falto el end. Ahora me aparece invalid token select list agregate group by clause
Algo así es lo k kiero. Me puedes colaborar gracias.

ingabraham 04-08-2011 16:23:54

Kiero k me aparescan dos registros
Bajopeso. 5000
Buenpeso 300

oscarac 04-08-2011 16:54:07

lo que te esta diciendo el sistema es que necesitas un campo adicional para poder agrupar la informacion...
cual es la estructura de tu tabla?

ingabraham 04-08-2011 17:14:41

Sencilla
Nacidos
----i--i-i--
Nroregistro
Sexo
Peso int

oscarac 04-08-2011 17:39:56

ok
mira lo podrias hacer de esta manera

Código Delphi [-]
 
select 'Bajo Peso', Count (peso) where Peso < 25000
Union 
select 'Buen Peso', Count (peso) where Peso > 25000

y listo

Paoti 04-08-2011 18:55:38

usando la idea de oscarc


Código SQL [-]

select count( Case when peso < 25000 then 1 else 0)  as bajo, 
count(Case when peso > 25000 then 1  else 0)  as bueno 
From nacimiento


100% funcional.

saludos.


La franja horaria es GMT +2. Ahora son las 05:47:22.

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