Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46

Объединение таблиц по дате

12.08.2014, 12:39. Показов 4096. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня есть таблица "Первая", в которой поля "Время_измерений" и "Измерения"
и таблица "Вторая", в которой поля "Время_давлений" и "Давления"

В таблице "Первая" записи чередуются каждую секунду
В таблице "Вторая" записи меняются только тогда, когда меняется параметр "Давления"
То есть, количество записей в таблице "Вторая" гораздо меньше


Я хочу в таблицу "Первая" справа добавить столбец "Давления", но чтобы по длине эти поля совпали. То есть, "растянуть" поле "Давление" на даты в поле "Время_измерений" с учетом дат в поле "Время_давлений"

То есть, если дата в поле "Время_давлений" сравнялась или превысила дату в поле "Время_измерений", то пошли одинаковые значения "Давления" до тех пор, пока значение в поле "Время_измерений" не совпадет или не превысит следующее значение "Время_давлений" - тогда начинается череда других одинаковых значений "Давления" и так до следующего совпадения дат.

Может быть, это можно сделать SQL-запросом?

Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2014, 12:39
Ответы с готовыми решениями:

Запрос на объединение таблиц с поиском по преобразованной дате
Всем добрый день! Прошу совета в написании запроса. Задача такая: есть две таблицы, в одной список продаж (атрибуты - дата продажи,...

Объединение 2-х таблиц
Доброго времени суток ! У меня такая проблема: нужно соединить две таблицы так что бы ничего не суммировалось, просто добавлялись строки....

Объединение таблиц
как связать и сделать такую таблицу ?

33
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.08.2014, 10:40
Студворк — интернет-сервис помощи студентам
Если все данные сохраняются для дальнейшей обработки несколько дней (запросы на данных за месяц - сотни тысяч записей - будут работать "не быстро"), то удобнее будет дописывать давление в общую таблицу (сделав дополнительный пустой столбец). Ну и значения измерений сделать числовыми. Тогда можно будет использовать и более простые схемы дозаполнения давлений (проход по всей таблице по возрастанию даты/времени с заполнением пустых давлений последним непустым).
2
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
13.08.2014, 10:43  [ТС]
Я дико извиняюсь, но еще такой вопрос. А если у меня в таблице "Вторая" несколько параметров - и каждый со своими временами. Можно ли при помощи процедуры "прикрепить" все к таблице "Первая"?
Спасибо!
0
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
13.08.2014, 10:44  [ТС]
Прикрепляю файл-пример
Вложения
Тип файла: zip Пример2.zip (26.9 Кб, 2 просмотров)
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.08.2014, 11:25
Все сделать можно, но есть тонкости. Возможно это только на данных примера, но что делать, когда времена во второй отсутствуют в первой (посмотрите запросы во вложении, смысл должен быть понятен по названию).
Вложения
Тип файла: 7z Пример2.7z (16.7 Кб, 2 просмотров)
1
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
13.08.2014, 11:40  [ТС]
Если данные не совпадают (отсутствуют), то как и в первом примере, с одним параметром, добавить IF и прописать, что если нет совпадений, тогда " " . Я думаю так. Потом я сама отброшу строки с "Нет значений". Вопрос в том, как одновременно прицепить все параметры из Второй таблицы к Первой. На практике у меня 11 таких параметров. И они будут постоянно добавляться. Если писать 11 модулей и 11 запросов - мне кажется, это не рационально(( Как все параметры "растянуть" на время в Первой таблице?..(
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.08.2014, 11:48
Вопрос то на самом деле о том, включать ли Измерение из первой таблицы в общую схему "дозаполнения".
И, если делать все правильно, нужно все времена и разные измерения собирать в новую, единую таблицу. Не хорошо, когда изменяются исходные таблицы фактов. А если исходные таблицы измерений будут добавляться, изменяться их структура - ну. делать нечего, придется и запросы, и программы изменять ... .
1
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
13.08.2014, 11:51  [ТС]
хорошо, а если я добавлять ничего не буду и правда, все поля буду собирать в новую таблицу, как это решить на примере моих трех параметров?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.08.2014, 12:15
Посмотрите вложение. Сначала запросом Union_DT_ собираются все даты, затем в запросе Union_Rez_ к датам дописываются все результаты измерений-факты. На основе такого запроса и можно заполнять общую таблицу, а потом обрабатывать в ней данные, делать интерполяцию (почему, кстати обязательно ступенчатую, а не линейную или сплайнами?)
Вложения
Тип файла: 7z Пример2_1.7z (17.8 Кб, 2 просмотров)
1
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
13.08.2014, 15:28  [ТС]
Здорово! Только не совсем понятно, что такое Вторая1.Температуры и Вторая2.Объемы. Откуда берутся эти таблицы, где прописаны?) И как заполнить пустоты одинаковыми значениями до тех пор, пока они не изменятся?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
13.08.2014, 16:37
Лучший ответ Сообщение было отмечено Oda412 как решение

Решение

Цитата Сообщение от Oda412 Посмотреть сообщение
Вторая1.Температуры и Вторая2.Объемы
Зто псевдонимы Второй. Её в запросе нужно использовать несколько раз, связывая с Первой по разным полям.
Во вложении база с заполнением. Заполняется таблица Union_Rez. Сначала запросом добавляются записи из запроса Union_Rez_, а потом в функции делается дозаполнение за один проход по таблице. Запуск - макросом Union_Rez*.
Вложения
Тип файла: 7z Пример3.7z (16.3 Кб, 1 просмотров)
1
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
14.08.2014, 10:26  [ТС]
Спасибо Вам огромное за проделанную большую работу. Сидела вчера вечер и утро, пыталась разобраться с кодом, но у меня вопросы (если Вам еще не надоело на них отвечать)))
1. По модулю "Module1".
- В строчке кода 'SELECT TOP 1 Измерения FROM Union_Rez WHERE' здесь Union_Rez - это наша таблица? Но она итоговая, уже заполненная. Или ее нужно создавать в начале, пустую? (прописывать поля заранее или они сами автоматически создадутся)?


2. По модулю "Преобразованные макрос - Union_Rez*". Я хотела посмотреть код макроса Union_Rez* - преобразовала.
- В нем есть функция Union_Rez_(). Она называется точно так же, как и наш запрос с пробелами. Так и должно быть? И где эта функция используется?
- Строчка 'DoCmd.RunMacro "Union_Rez*", , ""' Как макрос может запускать сам себя изнутри?

Спасибо Вам, что уделяете столько времени..
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
14.08.2014, 10:53
Лучший ответ Сообщение было отмечено Oda412 как решение

Решение

Цитата Сообщение от Oda412 Посмотреть сообщение
Но она итоговая, уже заполненная.
Нет, до выполнения этой процедуры запросом Union_Rez+ заполнены только те поля, которые были в исходных таблицах. Запрос находит первое (по времени) заполненное. Оно нужно для заполнения начальных "дырок".
Цитата Сообщение от Oda412 Посмотреть сообщение
В нем есть функция Union_Rez_(). Она называется точно так же, как и наш запрос с пробелами. Так и должно быть? И где эта функция используется?
- Строчка 'DoCmd.RunMacro "Union_Rez*", , ""' Как макрос может запускать сам себя изнутри?
Функция называется как макрос, но * в именах VB запрещена, поэтому имя макроса Union_Rez* заменено на Union_Rez_.

У меня такой строчки не получилось, есть Call F_Union_Rez - вызов функции из модуля1
Visual Basic
1
2
3
4
5
6
7
Function Union_Rez_()
 
    DoCmd.OpenQuery "Union_Rez-", acViewNormal, acEdit
    DoCmd.OpenQuery "Union_Rez+", acViewNormal, acEdit
    Call F_Union_Rez
 
End Function
1
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
14.08.2014, 16:04  [ТС]
Спасибо огромное! Все, получилось. Фуууухх.. Теперь с содроганием думаю о том, когда данные с Измерениями и Давлением, Объемом и Температурой будут пополняться) Придется все вручную снова переделывать))))Хотя, в принципе, мне кажется, если в исходные таблицы просто доимпортировать данные к уже имеющимся, то и итоговая таблица Union_Rez поменяется..
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
14.08.2014, 16:27
Если это новые данные (времен из них нет в таблице Union_Rez), то нужно просто запрос на удаление не выполнять (удалить из макроса). И все.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2014, 16:27
Помогаю со студенческими работами здесь

Объединение таблиц
Добрый день, подскажите каким образом можно объединить две таблицы с одинаковыми полями в одну, чтобы данные были друг под другом и при...

Объединение таблиц
В общем такая проблема. Есть 2 таблицы, одна Месяц Кол-во1 01...

Объединение таблиц
Здравствуйте! Подскажите пожалуйста, как создать таблицу "Итог" из двух (и более) таблиц "База1" и "База2", при...

Объединение таблиц
Здравствуйте! Возможно как-то соединить две таблицы по одинаковым полям, но чтобы данные в других полях не задваивались? SELECT...

Объединение таблиц
гугл не совсем точно ответил на мой вопрос, поэтому обращаюсь сюда. 1. есть 7 таблиц, в каждой 12 полей. нужно чтобы 6 полей из них...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru