Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
1 / 1 / 3
Регистрация: 02.11.2013
Сообщений: 54
1

Запрос на добавление не работает

06.01.2016, 23:56. Показов 1746. Ответов 14
Метки нет (Все метки)

Добрый день!

Имеется Таблица -Tab1

Структура: Tab1.Chet, Tab1.Prihod, Tab1.Rashod

В поле Tab1.Сhet -3 записи Chet1
Chet2
Chet3

Поля Tab1. Prihod и Tab1.Rahod являются пустыми.


также имеется Tab2

Tab2.Chet, Tab2.Prihod, Tab2.Rashod ... и другие

Мне нужно добавить итоговые значения полей Tab2.Prihod, Tab2.Rashod

в таблицу Tab1 при условии что Tab1.Chet = Tab2.Chet

Делаю такой запрос на добавление.

SQL
1
2
3
INSERT INTO Tab1 ( Prihod, Rashod ) 
SELECT SUM(Tab2.Prihod) AS Prihod, SUM(Tab2.Rashod) AS Rashod
FROM Tab2
WHERE Tab1.Chet = Tab2.Chet;

Access воспринимает Tab2.Chet как параметр а должно быть как условие - что если поля Chet в обоих таблицах равны то добавить записи.

данные поля Chet не должны добавляться а только Prihod и Rashod

Подскажите как правильно составить запрос на добавление.

ЗЫ - структуру я упростил просто для примера.

Добавлено через 3 часа 25 минут
Не правильно я делаю. Так как запрос на добавление добавляет данные в Tab1. А так как Tab1.Chet уже заполнена то нужен запрос обновления на основе запроса на вычисление

SQL
1
2
SELECT SUM(Tab2.Prihod) AS Prihod, SUM(Tab2.Rashod) AS Rashod
FROM Tab2;
теперь на основе результата этого запроса нужен запрос на обновление

Буду дальше пробовать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2016, 23:56
Ответы с готовыми решениями:

Не работает запрос на добавление
Доброго времени суток. Проблема такая: не работает запрос на добавление. Создать запрос на...

Не работает запрос на добавление
При нажатии на кнопку из формы регистрации авто, данные должны записываться в таблицу страхования....

не работает запрос на добавление INSERT INTO...
не получается сделать запрос: INSERT INTO продажа ( , , ) VALUES ((SELECT техника. FROM техника...

Добавление поля в таблицу через запрос на добавление
Здравствуйте, подскажите как создать запрос, чтобы к таблице добавить еще одно поле. Поля, не...

14
шапоклякистка 8-го дня
3657 / 2218 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
07.01.2016, 01:25 2
Начиная от FROM меняем:

SQL
1
FROM Tab1 INNER JOIN Tab2 ON Tab1.Chet = Tab2.Chet;
Добавлено через 2 минуты
Только я не уверена, что запрос на добавление, а не обновление должен быть. Вы точно хотите, чтобы именно кроме трех пустых строк добавились еще и три заполненных?

Если нужно не кромеЮ а вместо - нужен запрос не на добавление, а на обновление.
0
448 / 236 / 14
Регистрация: 29.10.2014
Сообщений: 954
07.01.2016, 22:28 3
SergejFil Запрос на добавление - это добавление неких новых записей в таблицу. Запрос на обновление-замена значений заданных пользователем полей уже существующих записей таблицы, пусть даже и не всех записей. Но если таблица большая, то обновлять значения полей ее записей лучше в коде перебором записей запросов из этих таблиц, тк запрос на добавление-самый медленный запрос Кроме того могут возникнуть неприятности с NuLL в источнике данных( если они не устранены на этапе проекта) и будет неустойчивый код-это может обнаружиться потом и слишком поздно.
0
шапоклякистка 8-го дня
3657 / 2218 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
07.01.2016, 22:43 4
Цитата Сообщение от commun Посмотреть сообщение
тк запрос на добавление-самый медленный запрос
Неужели?
1
448 / 236 / 14
Регистрация: 29.10.2014
Сообщений: 954
07.01.2016, 22:49 5
Клянусь

Добавлено через 49 секунд
только запрос на обновление, если точнее
0
7961 / 4974 / 548
Регистрация: 27.03.2013
Сообщений: 17,833
07.01.2016, 22:53 6
Ваще, в своём несовершенном мозгу видю единственный случай, когда запрос на добавление может быть уместен:
Есть к примеру БД - Абитуриенты, где учитываются
Кто подал заявление в ВУЗ
и
Кто прошел по приказу Ректора в ВУЗ
В другую БД - Студенты, нужно внести-добавить в таблицу - Студенты - КТО прошёл.
Добавляем.
Добавление в одной и той же БД одного из избранного в другое считаю извращением или неправильно соданной СХЕМОЙ БД.
Если есть варианты других вариантов, то искренне прошу просветить меня и разубедить в моём закостенелом консерватизме.
0
Эксперт MS Access
26634 / 14327 / 3172
Регистрация: 28.04.2012
Сообщений: 15,707
07.01.2016, 22:56 7
Запрос Insert Into может быть медленнее запроса Update когда в таблице есть множество индексов, особенно если индексы уникальные. В остальных случаях вставка конечно быстрее апдейта, ведь не требуется поиск обновляемых записей
0
448 / 236 / 14
Регистрация: 29.10.2014
Сообщений: 954
07.01.2016, 23:01 8
Не, ну я не сам придумал, так в Библии Акса написано, могу стр поискать
0
Эксперт MS Access
26634 / 14327 / 3172
Регистрация: 28.04.2012
Сообщений: 15,707
07.01.2016, 23:05 9
Цитата Сообщение от PuhKMV Посмотреть сообщение
Если есть варианты других вариантов
1. Во всех случаях когда приходит внешняя информация, например из текстового файла или книги Excel.
2. Когда инфа генерится в коде по заданному алгоритму
3. Для пополнения вспомогательных таблиц
4. Для пополнения логов изменения данных
1
7961 / 4974 / 548
Регистрация: 27.03.2013
Сообщений: 17,833
07.01.2016, 23:16 10
Ну это когда похоже в общем итоге, чего то, приходит от куда то там?
В самой же бд, кажись нет такой особой необходимости данным добавляться запросами на добавление, а просто напрямую.
Ну допускаю конечно необходимость особо-исключительно-извращенно-хитрых ходов но этого на 99,9 % скорее всего можно избежать - Правильной структурой БД и соответственно - стандартными методами??? .
0
Эксперт MS Access
26634 / 14327 / 3172
Регистрация: 28.04.2012
Сообщений: 15,707
07.01.2016, 23:24 11
Цитата Сообщение от PuhKMV Посмотреть сообщение
99,9 % скорее всего можно избежать - Правильной структурой БД и соответственно - стандартными методами???
Не всегда. Например при вставке в комбобокс нового значения, отсутствующего в таблице приходится иногда делать запрос на вставку (или вставку рекордсетом, что то же самое).
Не редкость вставка пачки записей. Например для графика посещений или рабочих дней.
1
7961 / 4974 / 548
Регистрация: 27.03.2013
Сообщений: 17,833
07.01.2016, 23:27 12
Цитата Сообщение от mobile Посмотреть сообщение
....вставка пачки записей....
А можно жизненный пример - ПАЧКИ???
0
448 / 236 / 14
Регистрация: 29.10.2014
Сообщений: 954
07.01.2016, 23:27 13
Не, ну всего и я и не вспомню сразу. Просто применяю часто, это быстрый устойчивый запрос. Как запрос на выборку.
1
Эксперт MS Access
26634 / 14327 / 3172
Регистрация: 28.04.2012
Сообщений: 15,707
07.01.2016, 23:36 14
Цитата Сообщение от PuhKMV Посмотреть сообщение
А можно жизненный пример - ПАЧКИ???
Представь себе оператора заполняющего график рабочих дней сотрудников. В подавляющем большинстве записей одна и та же инфа, отличающаяся только ид сотрудника и днем месяца. И зачем ему заполнять отдельно по каждому сотруднику за каждый день, когда гораздо легче вставить кнопкой восьмерки всем сотрудникам на каждый рабочий день. А потом исправить десяток записей на командировочных и больных. Выигрыш во времени может быть очень большим.
1
7961 / 4974 / 548
Регистрация: 27.03.2013
Сообщений: 17,833
07.01.2016, 23:49 15
Цитата Сообщение от commun Посмотреть сообщение
...Просто применяю часто, это быстрый устойчивый запрос....
Я так и знал. что это только лишь - Теоретический. а не Практический вопрос.
Я и ВАааШее, кроме примера описанного мною выше, просто не могу себе даже и теоретически представить, ну разве что с небольшими вариациями.

Добавлено через 12 минут
Цитата Сообщение от mobile Посмотреть сообщение
...когда гораздо легче вставить кнопкой восьмерки всем сотрудникам на каждый рабочий день. А потом исправить...
А вон вы про чё. вроде бы наполовину понял.
Я бы наверное просто из возможного списка сотрудников скопировал кнопкой всех и вставил всех в следущий месяц, потом удалил ненужных и начал как и вы исправлять дни и смены в каждый день,
НО по мне так - Любое удаление это чего то чуждое самой идее БД.
Удаляются - счетчики в таблицах фактов, хоть это и ни чего не значит, НО, это не красиво, а что не красиво, не Идеально.
Допускаю. что я весь такой старый пердун и зануда самых строгих правил, как у Пушкина (классика) в книжках, но всё же - ИДЕАЛ намного лучше чем - НЕ ИДЕАЛ, типа душу греет.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2016, 23:49

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Если нужно сделать запрос на добавление, зачем предварительно делать запрос на выборку?
Есть таблица: ID_записи, поле1, поле2, поле3. Хотелось бы записать запрос на добавление записи с...

Не работает запрос на добавление
Всем доброго времени суток! Выбираю данные из 2-х таблиц и помещаю их в третью таким запросом: ...

Не работает запрос на добавление из коллекции в бд
Запрос declare b_id number; l_count number; begin l_count :=...

Не работает запрос на добавление с одинарной кавычкой
Добрый вечер, такая ситуация, есть в базе MySQL две таблицы, одна из них таблица импорта. Добавляю...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.