Jump to content


Photo

¿Es posible crear datos al vuelo con Firebird?


  • Please log in to reply
2 replies to this topic

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 15 November 2012 - 12:58 PM

Pues eso, ¿es posible crear datos al vuelo con firebird?, me explico, esta duda forma parte de éste Hilo:

Quiero crear categorías al vuelo aunque no estén en la tabla Categorías y agrupar datos existentes y ligarla a esa categoría, por ejemplo:

En la tabla categorias tengo estos ID's [1,2,3,4,5,6] y en la consulta agregar "al vuelo" (No crearla en la tabla) ID's como [99991,99992] y agrupar los datos de acuerdo al tipo de Despacho a esos ID's.

Pregunto, ¿Es Posible?.

Saludos.

PD. Espero haberme explicado, en link más arriba está la mayoría de lo que requiero, para no repetirlo de nuevo :D.
  • 0

#2 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

Posted 15 November 2012 - 02:13 PM

Que tal enecumene, pues se me ocurre hacerlo con un UNION ALL.

Algo como:



Select A, B, C
From TableA
Where vehiculos = 'BUS'

UNIOL ALL

Select First 1 '99991', NULL, NULL
From TableA

UNIOL ALL

Select First 1 '99992', NULL, NULL
From TableA

UNIOL ALL

Select First 1 '99993', NULL, NULL
From TableA



Ignoro si es lo más adecuado pero es una idea.

Saludos
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 15 November 2012 - 02:32 PM

Muchas gracias Fredycc, ahora mismo acabo de resolver el problema, usando la clausula CASE...WHEN, quedó de esta manera:

INSERT INTO TMPDESPACHOSGASOILPRUEBA
SELECT case
    when desp_tipo = 'AN' then ve_categoria
    when desp_tipo = 'CR' then 9991
    else 9992 end GRUPO,
SUM(desp_cant) CANTIDAD
FROM despachos
LEFT JOIN vehiculos
ON despachos.ve_id = vehiculos.ve_id
WHERE desp_comb = 2
AND desp_estado = 1 AND desp_fecha >= '1.11.2012' AND desp_fecha <= '14.11.2012'
GROUP BY GRUPO


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.