2010-12-13 2 views
0

Я работаю с системой учета с бэкэндом Visual Foxpro. Каждый месяц все счета-фактуры и платежи переносятся из текущей таблицы счетов-фактур в новую таблицу (в другом каталоге) только с данными этого месяца. Например:Добавить содержимое многоуровневых таблиц - 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) 

Мне нужно выполнить запросы за последние шесть месяцев данных. Есть ли способ, которым я могу объединить несколько таблиц (из нескольких каталогов) в одном запросе Visual Foxpro?

мне нужно что-то вроде этого:

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

Я предпочел бы не выполнить отдельный запрос для каждой таблицы ...

Благодарения и

Jonathan

ответ

3

Вы можете сцепить запросы с помощью утверждения union.

Пример:

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' 

или

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' 
Смежные вопросы