Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Uso del Case (https://www.clubdelphi.com/foros/showthread.php?t=30259)

IVAND 01-04-2006 17:20:59

Uso del Case
 
Hola a todos

Utilizo firebird 1.53 ahora deseo utilizar la funcion CASE pero con un SUM me da un error en el group By

Ejemplo

Select key_caja,
Case
when (tp=1) then sum(debe*-1)
End Haber ,
Case
when (tp=1) then sum(debe*1)
End Debe
From caja
Group by key_caja

Me podrian echar una mano

AGAG4 01-04-2006 17:30:15

Checa Esto....
 
Cita:

Empezado por IVAND
Hola a todos

Utilizo firebird 1.53 ahora deseo utilizar la funcion CASE pero con un SUM me da un error en el group By

Ejemplo

Select key_caja,
Case
when (tp=1) then sum(debe*-1)
End Haber ,
Case
when (tp=1) then sum(debe*1)
End Debe
From caja
Group by key_caja

Me podrian echar una mano

Te Marca error porque estas usando 1 Campo Físico con 2 campos virtuales ó calculados, prueba con poner lo siguiente:
Código SQL [-]
Group by key_caja,2
Al ponerle 2 estas especificando que agrupe el resultado del Campo calculado que esta en la posición 2.

Espero te funcione.

IVAND 03-04-2006 16:56:41

Gracias por tu respuesta


Pero te comento he echo lo que me indicas y me sigue marcando error de Group by , aunque no deberia agrupar mas que por un campo pues el CASE es solo de condicion o me equivoco , si lo utilizo sin SUM funciona perfecto , espero puedan ayudarme en mi inquietud


De antemano Gracias
:D

fjcg02 03-04-2006 18:25:56

Creo que esta es la solución a tu problema, por lo menos en SQL Server.
Espero que te sirva de ayuda.


Cita:

select max(P.inname) as ZONA, HW.localizacion,
max(case clase when 'Servidor' then Mantenedor else '' end ) as ST_OFICINA,
HW.modelo, max(subclase) as Subclase,
count( modelo) as TOTAL,
sum(case isnull(f_finGarantia, 0) when 0 then 1 else 0 end) as MANT,
sum(case isnull(f_finGarantia, 0) when 0 then 0 else 1 end) as GARANT
from vistaassetshw HW, mantenimientodet M, relationships R, INDIVID P, INDIVID P2
where
HW.idasset = M.idasset group by localizacion, modelo
order by zona, localizacion, ST_OFICINA desc, subclase, modelo

IVAND 05-04-2006 17:39:48

Gracias amigo ese era la solucion


La franja horaria es GMT +2. Ahora son las 22:52:43.

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