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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 15:14   #1
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
Вопрос ИЗМЕНЕНИЯ ЗАПИСЕЙ В БД

добрый день

есть 2 адо таблицы
в первой есть записи:
ID___кол-во
1____20
2____30
3____30
4____90
а во второй:
ID____кол-во
2_____5
4_____30

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

во-первых, подобные запросы могут иметь нюансы в разных СУБД (поддерживают/не поддерживают алиасы, допускаются ли вложенные и т.д.)

во-вторых, а если во-второй таблице НЕСКОЛЬКО одинаковых ID
например
а во второй:
ID____кол-во
2_____5
4_____30
2_____7
2_____3

тогда что должен запрос изменить в таблице 1?

а вообще, вот такой запрос должен работать:
Код:
update Tablica1
  set Kolvo = Kolvo - (select sum(Tablica2.KolVo) 
                     from Tablica2 where Tablica2.ID = Tablica1.ID )
where Tablica1.ID in (select Tablica2.ID
   from Tablica2 where Tablica2.ID = Tablica1.ID)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2012, 17:29   #3
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, подобные запросы могут иметь нюансы в разных СУБД (поддерживают/не поддерживают алиасы, допускаются ли вложенные и т.д.)

во-вторых, а если во-второй таблице НЕСКОЛЬКО одинаковых ID
например
а во второй:
ID____кол-во
2_____5
4_____30
2_____7
2_____3

тогда что должен запрос изменить в таблице 1?

а вообще, вот такой запрос должен работать:
Код:
update Tablica1
  set Kolvo = Kolvo - (select sum(Tablica2.KolVo) 
                     from Tablica2 where Tablica2.ID = Tablica1.ID )
where Tablica1.ID in (select Tablica2.ID
   from Tablica2 where Tablica2.ID = Tablica1.ID)
1 субд аксес
2 ID уникальный ключ
ggod вне форума Ответить с цитированием
Старый 29.04.2012, 18:00   #4
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

Цитата:
2 ID уникальный ключ
Тогда затея совсем бессмысленная.
=master= вне форума Ответить с цитированием
Старый 29.04.2012, 18:25   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Тогда затея совсем бессмысленная.
ну, возможно.. это автору БД (TC) виднее...

запрос то мой отработал?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2012, 18:48   #6
ggod
Пользователь
 
Регистрация: 26.12.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, возможно.. это автору БД (TC) виднее...

запрос то мой отработал?!
нет еще но спасибо за помощь

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
update Tablica1
  set Kolvo = Kolvo - (select sum(Tablica2.KolVo) 
                     from Tablica2 where Tablica2.ID = Tablica1.ID )
where Tablica1.ID in (select Tablica2.ID
   from Tablica2 where Tablica2.ID = Tablica1.ID)
да работает но это если таблицы в одной бд а они у меня в разных

Последний раз редактировалось Stilet; 02.05.2012 в 09:52.
ggod вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменения прозрачности delfin07 Помощь студентам 0 06.06.2011 15:43
Макрос для изменения записей trattaturen Microsoft Office Access 4 02.10.2010 13:22
Удаление и изменения записей из БД через клинт atemic1 БД в Delphi 10 26.09.2010 23:49
изменения символов designer999 Общие вопросы Delphi 4 25.04.2010 15:58