2010-12-13 21 views
0

Je travaille avec un système de comptabilité avec un backend Visual Foxpro. Chaque mois, toutes les factures et tous les paiements sont transférés de la table des factures/paiements en cours vers une nouvelle table (dans un répertoire différent) avec seulement les données du mois. Par exemple:Ajout du contenu des tableaux muliple - Visual FoxPro

MainDBDir 
    currentInvoices.dbf (contains Dec invoices) 
    currentPayments.dbf (contains Dec payments) 
    2010Dir 
     NovDir 
      invoices.dbf (contains Nov2010 invoices) 
      payments.dbf (contains Nov2010 payments) 
     OctDir 
      invoices.dbf (contains Oct2010 invoices) 
      payments.dbf (contains Oct2010 payments) 

J'ai besoin d'exécuter une requête sur les six derniers mois de données. Est-il possible de concaténer plusieurs tables (à partir de plusieurs répertoires) dans une seule requête Visual Foxpro?

je besoin de quelque chose comme ceci:

select * from concatenate(currentInvoices, 2010Dir/NovDir/invoices.dbf, 2010Dir/OctDir/invoices) where invoice_number like '12345' 

Je préfère ne pas exécuter une requête séparée pour chaque table ...

Action de grâce

Jonathan

Répondre

3

Vous pouvez concaténer les requêtes en utilisant une déclaration d'union.

Exemple:

select * from currentInfoices.dbf 
    where invoice_number like '12345' 
union 
select * from "2010Dir\OctDir\invoices.dbf" 
    where invoice_number like '12345' 
union 
select * from "2010Dir\NovDir\invoices.dbf" 
    where invoice_number like '12345' 

ou

select * 
    from (select * from currentInfoices.dbf 
      union select * from "2010Dir\OctDir\invoices.dbf" 
    union select * from "2010Dir\NovDir\invoices.dbf") q 
    where invoice_number like '12345'