powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Объединение данных из разных таблиц в одну с подсчётом суммы
12 сообщений из 12, страница 1 из 1
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32058821
Anita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите! Есть несколько таблиц, в каждой User name and
User Punkte. Общее количество пунктов (Sum) для каждого USERa должно обновляться в одной общей таблице, которая также содержит User name and User Punkte.
Как лучше сделать?!
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32058982
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос на обьединение?....с групировкой=)
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059190
Anita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, группировка с объединением.
Есть 34 таблицы, куда пользователи вносят свои данные, эти данные затем мной оцениваются пунктами.
За правильный ответ столько-то и т.д.
Есть таблица общая, где собраны все USERы с их данными и общим количеством пунктов для каждого . Общее количество пунктов насчитывается по 34 таблицам.
Основная трудность в том, что если имя USERa не встречается хотя бы в одной из 4 таблиц, выдаётся ответ,
что такого USERa нет. Что-то я делаю не так.
Понятно, если такого имени в одной из таблиц нет, то при подсчёте этo должно приниматься за ноль, но как это отобразить в SQL-запросе?
Я ещё не имею достаточного опыта, поэтому BITTE помогите!
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059264
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если разбираешься в SQL то вместо
Код: plaintext
1.
2.
3.
4.
5.
SELECT us.id, us.name, tb1,pnkt, tb2.pnkt
FROM user us, table1 tb1, table2 tb2
WHERE
tb1.user_id=us.id
AND
tb2.user_id=us.id
надо использовать
Код: plaintext
1.
2.
3.
4.
SELECT us.id, us.name, tb1,pnkt, tb2.pnkt
FROM user us LEFT JOIN table1 tb1 ON tb1.user_id=us.id LEFT JOIN table2 tb2 ON tb1.user_id=us.id WHERE
tb1.user_id=us.id
AND
tb2.user_id=us.id


А если просто в Access. Надо в самом запросе нажать на связь между таблицами и в параметрах поменять отношение "ОДИН к ОДНОМУ" на "ОДИН к МНОГИМ"
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059352
Anita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ, но примерно по тaкой схеме я и писала:
Код: plaintext
1.
2.
3.
SELECT sum(spiel8.Punkte +spiel9.Punkte +Users.Punkte) AS Punkte, Users.UserName
FROM spiel9 INNER JOIN (spiel8 INNER JOIN Users ON spiel8.name = Users.UserName) ON spiel9.name = Users.UserName
WHERE spiel8.name = Users.UserName and spiel9.name= Users.UserName
GROUP BY Users.UserName;

В ответе содержатся только те USERы, которые участвовали, а если один участвовал в один день (table-spiel8), a не участвовал в другой день (table-spiel9), то он не включается в список выборки!
Какие бы соединения я ни создавала, как бы ни меняла SQL-запрос - ответ один.
Я работаю только с SQL-Server 7.0; 2000, а теперь не мoгу справиться с Access 97!
А когда я в окне SQL-запроса пытаюсь вставить вместо INNER Join - LEFT Join, он мне отвечает что не поддерживает это объединение! (Access - немецкий, как перевести точнее не знаю.) Но чего-то явно не хватает...
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059356
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Определенно, попробуй графически поставить связи один ко многим! А там посмотрим, как надо писать правильно!
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059364
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что у меня получилось по быстрому!
Код: plaintext
1.
SELECT TBL_USER.us_id, TBL_USER.name, TBL_2.val1, TBL_2.val2, TBL_1.val1, TBL_1.val2
FROM (TBL_USER LEFT JOIN TBL_1 ON TBL_USER.us_id = TBL_1.u_id) LEFT JOIN TBL_2 ON TBL_USER.us_id = TBL_2.u_id;

При этом он выбрал все из TBL_USER и к ним совпадающие записи из TBL_1 и TBL_2 по ключу us_id . А если такой записи нет - выводил в поле значение NULL
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059376
Anita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!!! Когда установила, как ты сказал, вcё пошло! Ну не знаю я Access!
А можно теперь как-то включить сюда запрос на автоматическое обновление суммы пунктов в таблице Users? Или это невозможно в Access?
Благодарю!
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059381
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не не выйдет помоему!
Он можел либj SELECT либо UPDATE!
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059388
Anita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень жаль, SQL-Server делает такое с помощью хранимых процедур, но если кто что знает буду очень признательна.
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32059542
Фотография MichaelGK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так на чем мы остановились? Запрос суммирующий данные из кучи таблиц готов? Осталось обновить данные в общей таблице? Если прямо сделать INNER JOIN общей с этим запросом и неписать Set общ.Puncte = запрос.Puncte не пройдет... Попробуйте вставить записи запроса в промежуточную таблицу (предварительно ее очищая или создавая ее только на время выполнения обновления), уже ее данными обнвляйте общую таблицу (а нужна ли общая? может эта промежуточная и выполнит роль общей?)
...
Рейтинг: 0 / 0
Объединение данных из разных таблиц в одну с подсчётом суммы
    #32060148
ALK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ALK
Гость
есть такая фраза:

А знаете ли вы что?

1. в sql- серверах есть возможность использовать триггеры.
триггер может при изменении данных в одной таблице выполнять обновления в другой. (например обновлять таблицу со статистикой)

2. в комплекте офиса 2000 и выше прилагается SQL - сервер для win98 - MSDE

3. аксесс замечательно с ним работает.

хотя это совсем не по теме, и наверное никому не интересно ..
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Объединение данных из разных таблиц в одну с подсчётом суммы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]