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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo Hace 1 Día
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:38:20.


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