Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   sql o grid (https://www.clubdelphi.com/foros/showthread.php?t=13413)

minos 18-08-2004 00:48:24

sql o grid
 
tengo una tabla mas o menos asi:

Código:


cuenta    cantidad    tipo
00001        500        1
00002        200        0
00003        20        1
00004        10        0
00005      2000        0

y quiero que deacuerdo a la columna "TIPO" se posicione en otra, ya sea por medio de una consulta o de la que sea

Código:

cuenta        A          B          tipo
00001        500                      1
00002                      200        0
00003        20                      1
00004                      10        0
00005                    2000        0

si alguien tiene una idea....

jachguate 18-08-2004 05:34:49

Hola minos.

En primer lugar bienvenido(a) a los foros del clubdelphi. Te recomiendo la lectura de la guia de estilo de los foros que tiene las reglas básicas de convivencia en este lugar.

Luego, has colocado originalmente este mensaje en el hilo Longitud máxima para una consulta SQL, donde no tiene que ver con la pregunta original del hilo. De esa cuenta, la he movido abriendo un nuevo hilo.

También te recomiendo que apredas a usar la etiqueta [code] que te puede ser útil para publicar tablas como las que pretendes, pues respeta los espacios en blanco e indentación. También están disponibles las etiquetas [ delphi], [sql] y [php] para publicar trozos de código, pues a demás de la indentación, resalta la sintaxis. Esta vez, yo he heditado tu mensaje para que sea claro.

Por último, y respondiendo a tu inquietud, es algo que podes lograr fácilmente con un par de campos calculados, y el evento OnCalculate del DataSet Asociado, que quedaría algo como:

Código Delphi [-]
Procedure TablaCalcFields(Dataset : TDataSet);

Begin
  // asumo que los campos calculados se llaman a y b
  if TablaTIPO.AsInteger = 1 Then
    TablaA.AsFloat := TablaCANTIDAD.AsFloat
  else
    TablaB.AsFloat := TablaCANTIDAD.AsFloat;
end;

Hasta luego.

;)

roman 18-08-2004 06:05:06

Otra opción, si tu motor de bases de datos acepta algún tipo de condicional, es mediante una consulta SQL. Por ejemplo, en MySql te funciona esto:

Código SQL [-]
select
  cuenta,
  if(tipo=1, cantidad, null) as A,
  if (tipo=0, cantidad, null) as B,
  tipo
from
  tabla

// Saludos


La franja horaria es GMT +2. Ahora son las 07:31:51.

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