Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   No se como realizar esta consulta (https://www.clubdelphi.com/foros/showthread.php?t=14847)

minos 01-10-2004 21:47:44

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.

roman 01-10-2004 22:13:18

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

raffagia 01-10-2004 23:08:37

esaa!
 
buenisima solucion,, no se me hubiera ocurrido en 2000 años---


La franja horaria es GMT +2. Ahora son las 23:16:48.

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