Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
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
__________________
IVAND
Responder Con Cita
  #2  
Antiguo 01-04-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 03-04-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
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
__________________
IVAND
Responder Con Cita
  #4  
Antiguo 03-04-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 05-04-2006
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 523
Poder: 21
IVAND Va por buen camino
Gracias amigo ese era la solucion
__________________
IVAND
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Case Anidados ¿Se puede? jam888 MS SQL Server 5 31-01-2006 14:39:38
Case con Expresiones Complejas Jvilomar OOP 15 03-10-2005 15:26:21
Ayuda con CASE YaninaGenia Varios 2 26-06-2005 12:40:39
Incluir un IF dentro de un CASE Javi2 SQL 1 21-04-2005 11:59:31
Ejemplo Select Case osmar Firebird e Interbase 4 21-02-2005 18:18:57


La franja horaria es GMT +2. Ahora son las 01:31:34.


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
Copyright 1996-2007 Club Delphi