0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 81

Запрос с двумя таблицами

15.11.2017, 21:24. Показов 1202. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите составить SQL запрос с двумя таблицами(Access база). Имеются 2 таблицы(рис 1.jpg) с одинаковыми полями, в первой таблице много записей, во второй намного меньше, нужно определить количество записей во второй таблице и каждое ее "Name " найти в первой таблице и вычесть значение первой таблицы из значения второй таблицы и сохранить изменения в первой таблице, должно получиться как на рис 2. jpg.

Что то у меня не совсем получается...=( желательно все одним запросом

C++
1
2
3
4
5
6
7
8
9
10
var
i,z:integer;
begin
z:=Query1.SQL.ADD("SELECT count(*) from table_2"); //количество записей во второй таблице
for i:=1 to z 
     begin
     SQL.Clear;
     Query1.SQL.ADD("SELECT * from table_1,table_2 where name.table_2=name.table_1");
     Query2.SQL.ADD("UPDATE table_1 SET table_1.number=table_1[number]-table_2[number] ");
end;
Миниатюры
Запрос с двумя таблицами   Запрос с двумя таблицами  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2017, 21:24
Ответы с готовыми решениями:

DBGrid с двумя таблицами
в MS SQL созданы две таблицы. как в 1 DBGrid закинуть определенные поля из двух таблиц? в дальнейшем эти таблицы будут...

Создание запроса с двумя таблицами
Здравствуйте, помогите пожалуйста составить запрос, состоящий из двух таблиц. В первом отчете вывести фамилию, имя и отчество танцора, а...

Зависимость между двумя таблицами ADOQuery
Добрый день товарищи! Помогите пожалуйста связать три таблички. Имеется таблица "Преступление" с полями id_Преступления, Номер...

8
5989 / 4564 / 1096
Регистрация: 29.08.2013
Сообщений: 28,207
Записей в блоге: 3
15.11.2017, 22:03
Цитата Сообщение от mikl25 Посмотреть сообщение
Что то у меня не совсем получается...=( желательно все одним запросом
удали весь свой код и используй только запрос из строки 9 (если он рабочий)

если не рабочий, напиши рабочий
ЗЫ тебе нужен только 1 UPDATE остальное не нужно
0
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 81
15.11.2017, 22:40  [ТС]
нет, похоже не рабочий, пишет 'ошибка синтаксиса(пропущен оператор)'

Добавлено через 8 минут
вот такой запрос попробовал, тоже ошибка выходит
UPDATE table_1 INNER JOIN table_2 ON table_1.name=table_2.name SET table_1.number=table_1.number-table_2.number
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.11.2017, 23:06
А посмотреть учебный материал по синтаксису SQL так уж сложно?
Запросов всего четыре и выяснить из чего должен состоять запрос для обновления данных нужно даже не день, а всего десять - двадцать минут.

Нет же в UPDATE никаких JOIN. К тому же в UPDATE практически всегда присутствует условие (WHERE ...), по которому определяется какие записи должны обновляться. Без этого условия будут обновлены ВСЕ записи в таблице.

Чтобы получить значение из другой таблицы, вначале нужно выполнить запрос SELECT чтобы получить нужное значение (поместив его в переменную), которое потом будет участвовать в арифметической операции UPDATE. А вставлять в текст этого запроса поля из других таблиц - бессмыслица.
Кстати, JOIN (объединение данных из разных таблиц) может быть только в запросах SELECT.
К тому же, в приведенных таблицах нет важного поля, которое содержит уникальный номер (идентификатор) каждой строки таблицы.
Видимо, это только макет реальной базы данных, но такой макет, что на нем нельзя отработать решение задачи.

Добавлено через 4 минуты
И странно выглядят двойные кавычки, обрамляющие константные строки в Дельфи. Неужели компилятор пропускает... ? (вопрос риторический).
0
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 81
15.11.2017, 23:14  [ТС]
нет, в самой программе одинарные ковычки, а id нет потому что возможно некоторые записи будут удалять из базы и допустим станет Id1,Id2,Id7 и т.д и хотел вместо этого использовать определение количество записей в таблице
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.11.2017, 23:33
Постулаты, без которых разработчика БД можно назвать дилетантом:
- Без полей-идентификаторов (ID) - нет базы.
- ID чисто служебные поля и к пользователям никакого отношения иметь не могут.
- Нумерация строк для пользователей происходит только в клиентской программе.
- Остатки в базе НЕ ХРАНЯТ.

По теме пока достаточно.
0
5989 / 4564 / 1096
Регистрация: 29.08.2013
Сообщений: 28,207
Записей в блоге: 3
16.11.2017, 07:47
Цитата Сообщение от mikl25 Посмотреть сообщение
вот такой запрос попробовал, тоже ошибка выходит
сочувствую, а дальше что?

напиши правильный запрос в аксессе, перенеси его в делфи и у тебя все будет работать
не знаешь как написать запрос?
задай вопрос. только именно как вопрос, а не пиши "вот так пробовал - не работает"

Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от Скандербег Посмотреть сообщение
- Без полей-идентификаторов (ID) - нет базы.
база то есть, но вот работать с ней..
Цитата Сообщение от Скандербег Посмотреть сообщение
- ID чисто служебные поля и к пользователям никакого отношения иметь не могут.
ну в таблице номенклатуры (справочник) еще можно показывать ID, а в остальных?
Цитата Сообщение от Скандербег Посмотреть сообщение
- Нумерация строк для пользователей происходит только в клиентской программе.
а где нумерация должна происходить? на сервере?
Цитата Сообщение от Скандербег Посмотреть сообщение
- Остатки в базе НЕ ХРАНЯТ.
тут конечно все зависит от области, но их действительно там не хранят:)

ой я дурак дилетант

0
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 81
16.11.2017, 10:07  [ТС]
Id есть в обоих таблицах базы, на картинке не указал, как создать такой запрос?
0
W
 Аватар для kavasaka
115 / 115 / 33
Регистрация: 16.04.2013
Сообщений: 750
16.11.2017, 10:27
Цитата Сообщение от mikl25 Посмотреть сообщение
2 таблицы(рис 1.jpg) с одинаковыми полями
Зачем один и тот же текст 2 раза в базе хранить?? Сделай одну таблицу справочник, а вторую движение товара (приход/расход). Остальное все динамически запросами вычисляется. Короче сначала базу исправляй потом уже за код берись.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2017, 10:27
Помогаю со студенческими работами здесь

Вопрос про связь между двумя таблицами
Привет всем. Помогите встать на путь истинный что-то я немного запутался. В общем проблема в следующем. Есть база MS Access, в ней есть...

Как создать связь между двумя таблицами
Я создала две таблицы в Database Desktop, но не могу их связать один-ко-многим. Кто может объяснить как это сделать?

Создание связи между двумя таблицами MS Access, используя ADOQuery
Здравствуйте! У меня в Access есть две связанные между собой таблицы. Я в Delphi вставила три компонента ADOConnection, DataSource,...

Запрос AdoQuery, соединение с таблицами в разных формах. Delphi. DBGrid
Здравствуйте, помогите пожалуйста! В общем нужно чтоб при выборе определенного (курса)из грида, а после нажатии "выбрать",...

MySQL запрос c двумя таблицами?
Всем привет. Допустим, у меня есть таблица с users пользователями, в ней такие поля: id, login, password. И также есть таблица blacklist,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru