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-10-2004
minos minos is offline
Registrado
 
Registrado: ago 2004
Posts: 6
Poder: 0
minos Va por buen camino
No se como realizar esta consulta

Tengo una tabla, donde estan campos como
Código:
Num   Cantidad   Tipo
A	  100	 True
B	  200	 True
A	   30	 False
B	  100	 False
El problema es de que quiero que la consulta me sume los cantidades deacuerdo al tipo, si es true lo suma, y si es falso los resta, algo asi

Código:
Num   Cantidad
A	   70	 
B	  100
Trabajo con BDE, ya prove con IF en el codigo de la consulta, pero no lo acepta.

El otro problema es de que en una colsulta utilice campos calculados y una variable para poner en el campo calculado el dato, pero al hacer SCROLL en el DBGrid, me cambia el dato que puse.

De todas manras gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 01-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Un comentario: decir que trabajas con BDE no es decir mucho ya que el bde te sirve para acceder a varios tipos de bases de datos.

Suponiendo que estás trabajando con Paradox, en efecto, no puedes usar condicionales. Pero en el caso particular que quieres puedes lograrlo así:

Código SQL [-]
select
  num, sum((2*cast(tipo as smallint) - 1)*cantidad)
from
  tabla
group by
  num

El cast convierte el tipo booleano a entero (false->0, true->1) de manera que al multiplicar por 2 y restar 1 obtienes

false -> -1
true -> 1

Éste es el factor que necesitas para cantidad de manera que obtienes +cantidad si tipo=true y -cantidad si tipo=false, que es lo que requieres para sumar o restar según el caso.

Para el otro problema, además de que deberás abrir un nuevo hilo ya que no se relaciona con la primera pregunta, deberás especificar con mayor claridad.

// Saludos
Responder Con Cita
  #3  
Antiguo 01-10-2004
Avatar de raffagia
raffagia raffagia is offline
Miembro
 
Registrado: sep 2004
Posts: 31
Poder: 0
raffagia Va por buen camino
esaa!

buenisima solucion,, no se me hubiera ocurrido en 2000 años---
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


La franja horaria es GMT +2. Ahora son las 04:14:49.


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