Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Firebird soporta Vistas en linea? (https://www.clubdelphi.com/foros/showthread.php?t=50405)

maxid 16-11-2007 18:36:46

Firebird soporta Vistas en linea?
 
he querido hacer una vista en linea, como por ejemplo:

Código SQL [-]
select
 cp.Nombre,
 e.nombre as nomesp,cpro.nombre as nompro,
 min(fecha) PrimeraConsulta,
 max(fecha) UltimaConsulta,
 count(cp.Nombre),
 (SELECT
first 1
  DETTABLAS.CODIGO,
  DETTABLAS.DESCRI
FROM
  HISTORIAS_CLINICAS
  INNER JOIN DETHISTORIAS ON (HISTORIAS_CLINICAS.NUMINT = DETHISTORIAS.NUMINT)
  INNER JOIN DETTABLAS ON (DETHISTORIAS.NUMTAB = DETTABLAS.NUMINT)
where
  DETTABLAS.TABLA = 3
and
   HISTORIAS_CLINICAS.pacien=HISTORIAS_CLINICAS.pacien
group by
  DETTABLAS.CODIGO,
  DETTABLAS.DESCRI
having count(*) = 1

order by max(HISTORIAS_CLINICAS.FECHA) desc) x
 from
 vw_diagpac
 LEFT OUTER pacien
 turnos t, cuentas cp, practicas p,
 horarios h, cuentas cpro, especialidades e

 where
     t.pacien = cp.numint And
     t.practi = p.Numero And
     t.horari = H.numint and
     h.profes=cpro.numint and
     h.especi=e.numero  and
     cambio in(2,3,5) and
     h.fecha between '10/01/2006' and '05/31/2007'

group by
 cp.Nombre,
 e.nombre,
 cpro.nombre
order by e.nombre,cpro.nombre

y me da error que no conoce el select
esto está soportado en mysql, oracle, postgres y hasta en mssql

jhonny 16-11-2007 18:43:43

La sintaxis para crear vistas en FireBird es:

Código SQL [-]
create view new_view ( _fields_ )
as
select _fields_ from _table_name_
where _conditions_

Como vez la consulta que nos acabas de mostrar debe estar despues del As y tendras que indicarle un alias de los campos donde dice "_fields_" en el orden respectivo a tu consulta.

Nota: Recuerda que debes usar las etiquetas SQL para que se vea mejor tu codigo.

juanelo 16-11-2007 18:53:16

Que tal Maxid,
Lo que quieres hacer se resuelve con tablas derivadas, que son tablas en tiempo de ejecucion recultado de una consulta pero que a su vez pueden ser utilizadas por ejemplo en un join. Te recomiendo que leas lo que trae de nuevo el firebird 2.0.x y cheques el tema de "derivate tables" o tablas derivadas.
Saludos.


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

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