Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 20:50   #1
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
Вопрос ВЫЧИТАНИЕ ПОЛЕЙ ИЗ РАЗНЫХ БД

есть 2 таблицы в РАЗНЫХ БД АКСЕСА
в первой есть записи:
ID кол-во
1 20
2 30
3 40
4 90
а во второй:
ID кол-во
2 5
4 30

как осуществить вычитание из поля "кол-во" 1 таблицы из 1 БД, "кол-во" 2 таблицы из 2 БД с одинаковыми ID?(ID не повторяются)
ggod вне форума Ответить с цитированием
Старый 05.05.2012, 22:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если я правильно понял Вас, то проще простого

Код:
select t1.[кол-во] - t2.[кол-во] from Первая t1, Вторая t2
   where t1.ID = t2.ID
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2012, 23:06   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Серж, я понял, что таблицы в двух разных MDB. В этом случае вообще не вижу возможности в одном запросе это сделать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.05.2012, 23:24   #4
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Код:
select t1.[кол-во] - t2.[кол-во] from Первая t1
join Вторая t2 in "C:\second.mdb" on t1.ID = t2.ID
=master= вне форума Ответить с цитированием
Старый 06.05.2012, 09:28   #5
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
Вопрос

Цитата:
Сообщение от Аватар Посмотреть сообщение
Серж, я понял, что таблицы в двух разных MDB. В этом случае вообще не вижу возможности в одном запросе это сделать
да таблицы в разных файлах

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если я правильно понял Вас, то проще простого

Код:
select t1.[кол-во] - t2.[кол-во] from Первая t1, Вторая t2
   where t1.ID = t2.ID
это если таблицы в одном файле.Проблема в том что таблицы в разных файлах и из одного SQL запроса к ним не обратиться

Последний раз редактировалось Stilet; 06.05.2012 в 09:49.
ggod вне форума Ответить с цитированием
Старый 06.05.2012, 11:00   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

in конечно симпатично, только из дельфей JET не хочет с этим работать. Пытался с одной таблицей из mdb прописанного в строке соединения, а другой из mdb в in
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 06.05.2012 в 11:05.
Аватар вне форума Ответить с цитированием
Старый 06.05.2012, 11:12   #7
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Написать запрос в аксесе и вызывать как сторед-процедуру.
=master= вне форума Ответить с цитированием
Старый 06.05.2012, 12:36   #8
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
Вопрос

вчера на другом форуме разбирали копирование из одной бд в другую
Код:
var i,cnt:integer;
begin
  {BD1}
  ADOConnection1.Connected:=true;
  {BD2}
  ADOConnection2.Connected:=true;
  ADOConnection2.KeepConnection:=true;
 
  ADOQuery1.Connection:=ADOConnection1;
  ADOQuery2.Connection:=ADOConnection2;
 
  ADOQuery1.SQL.Add('select * from tab');
  ADOQuery2.SQL.Add('insert into tab(f1,..fn) values (:p1,..,:pn)');
  ADOQuery2.ParamCheck:=true;
 
  ADOQuery1.Open;
  cnt:=ADOQuery1.RecordCount-1;
 
  ADOQuery1.First;
  for i := 0 to cnt do
    begin
      ADOQuery2.Parameters.ParamByName('p1').Value:=ADOQuery2.FieldByName('f1').Value;
      {...}
      ADOQuery2.Parameters.ParamByName('pn').Value:=ADOQuery2.FieldByName('fn').Value;
      ADOQuery2.ExecSQL;
      ADOQuery1.Next;
    end;
end;
ну а с вычитанием строк я думаю что то типо цикла в циклк нужно...
ggod вне форума Ответить с цитированием
Старый 06.05.2012, 15:33   #9
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

ggod да, еще веб сервер прикрутите, комп проабгрейдить тоже не помешает, диски в рейд, ..., ну и что бы уж совсем на верняка, то наймите програмиста.
=master= вне форума Ответить с цитированием
Старый 06.05.2012, 15:54   #10
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
Вопрос

Цитата:
Сообщение от =master= Посмотреть сообщение
ggod да, еще веб сервер прикрутите, комп проабгрейдить тоже не помешает, диски в рейд, ..., ну и что бы уж совсем на верняка, то наймите програмиста.
это была попытка пошутить?
P.S.
ну если вы не можете решить простейшую задачу, то не стоит отвечать всякий бред и показывать свою глупость
ggod вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет разницы двух полей разных ADOTable. shurup Помощь студентам 7 27.05.2011 22:14
Объединение данных из разных Файлов на разных листах одной книги Nikodim113 Microsoft Office Excel 20 12.01.2011 07:12
Вычитание полей с разных таблиц! RSmile Microsoft Office Access 6 25.04.2010 13:54
При удалении записей значения полей с type:=Autoincrement (т.е+) в оставшихся полей не изменяются kenta БД в Delphi 2 29.10.2009 08:28
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53