FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Utilizar sentencias Select como si fueran Tablas
Hola amigos
Quiero hacer una consulta en la que se utilice un select como si fuera una tabla, es decir, de él seleccionar datos. A continuación pongo el código como lo tengo actualmente para que se den una idea: Código:
select sum(total) from (Select Scve_Sucursal, CABreviatura3, (select sum(stotal) from Numeracion_remesa where scve_sucursal = S.scve_sucursal and cstatus = 'G') Total from sucursal S) T Cabe señalar que he hecho este tipo de consultas en SQL Server y sí es soportado con la sintaxis que utilicé aquí. ¿Alguien sabe si esto es posible en Interbase(es el gestor que estoy utilizando) y, de ser así, me podría indicar cuál es la sintaxis correcta? Gracias y hasta pronto |
#2
|
||||
|
||||
Me parece que estas complicando la sentencia...
¿No es algo como esto? Código:
select sum(stotal) from Numeracion_remesa nr, sucursal s where nr.scve_sucursal = S.scve_sucursal and cstatus = 'G' Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Si, sé que la consulta es un poco complicada, de hecho ya la reduje, pero en sí lo que me interesaba saber es si es posible hacer algo como eso en Interbase, ya que algunas veces he tenido esa necesidad. Lo he resuelto usando stored procedures, pero me intriga saber si se podría utilizar el resultado de un select como si fuera una tabla.
Y gracias por tu respuesta, en adelante pondré más empeño en hacerlas lo más simples posible. |
#4
|
||||
|
||||
Hola.
Hasta donde yo sé, no se puede hacer en Interbase / Firebird. Lo único parecido que puedes hacer es poner la primera consulta en una vista, y realizar una consulta sobre la vista. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
|||
|
|||
Ya lo hice, gracias!!!
En efecto, Interbase no da la capacidad de hacer lo que yo pretendía, pero tampoco recurrí a la creación de una vista. Lo que hice fue crear el siguiente procedimiento almacenado Código:
CREATE PROCEDURE "Totales_Remesa" RETURNS ( SCVE_SUCURSAL INTEGER, ABREVIATURA VARCHAR(3), TOTAL INTEGER) AS begin for Select Scve_Sucursal, CABreviatura3, (select sum(stotal) from Numeracion_remesa where scve_sucursal = S.scve_sucursal and cstatus = 'G') Total from sucursal S into :scve_sucursal, :abreviatura, :total do begin if (total is null) then total = 0; suspend; end end Código:
select sum(total) from "Totales_Remesa" Código:
select sum(stotal) from Numeracion_remesa where cstatus = 'G' |
|
|
|