Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo Hace 21 Horas
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 948
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado colega, mirando su problema le propongo la siguiente solución...

1) Crear procedimento para acceder a los datos desde las distintas bases de datos
Código SQL [-]
create or alter procedure sp_ventas_from_year(ventas_year integer)
returns (id integer, ventas double)
as
begin
  for
     execute
     statement ('select id, ventas
                 from pedidos')
     on external data source 'c:\Datos'||:ventas_year||'\ventas.fdb' as user current_user password 'masterkey'
     into :id,
          :ventas
  do
  begin
        suspend;
  end
end

2) Test para probar consultas
Código SQL [-]
//Obtener las ventas del año 2025
select a.id, 
       a.ventas 
from sp_ventas_from_year(2025) a

//Obtener las ventas del año 2026
select a.id, 
       a.ventas 
from sp_ventas_from_year(2026) a

3) Consulta comparando ventas de ambos años de cada ID
Puede crear una vista con estas consultas...O incluirlas todas en un TIBQuery

Código SQL [-]
--Todos este código debe estar en TIBQuery 
--Ventas con id en ambos años
select 
    v2025.id,
    v2025.ventas vtas_2025,
    v2026.ventas vtas_2026
from SP_VENTAS_FROM_YEAR(2025) v2025 --ventas_2025
   inner join SP_VENTAS_FROM_YEAR(2026) v2026 on (v2025.id = v2026.id)

union all

--Ventas 2025 que no estan en 2026
select 
    v2025.id,
    v2025.ventas as vtas_2025,
    0 as vtas_2026
from SP_VENTAS_FROM_YEAR(2025) v2025
   left outer join SP_VENTAS_FROM_YEAR(2026) v2026 on (v2025.id = v2026.id)
where (v2026.id is null)

union all

--Solo ventas del 2026 que no estan en 2025
select v2026.id,
       0 as vtas_2025,
       v2026.ventas vtas_2026
from SP_VENTAS_FROM_YEAR(2026) v2026
   left outer join SP_VENTAS_FROM_YEAR(2025) V2025 on (v2026.id = v2025.id)
where (v2025.id is null)

Espero le sirva...Saludos cordiales
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Grabacion de Registros en una tabla. GINMARMENOR Conexión con bases de datos 8 17-05-2026 20:54:05
consulta dos campañas GINMARMENOR SQL 4 03-09-2024 21:10:39
firebird en varias campañas GINMARMENOR Firebird e Interbase 9 24-06-2019 23:43:28
Actualizar campos de una Tabla cuando se actualize otra tabla RedVenom Varios 28 11-05-2011 18:19:38
Aplicacion campañas de cereales analia1979 Varios 5 19-07-2007 09:46:29


La franja horaria es GMT +2. Ahora son las 12:53:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi