|
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
|
|
Объединение таблиц по дате12.08.2014, 12:39. Показов 4096. Ответов 33
Метки нет (Все метки)
Здравствуйте!
У меня есть таблица "Первая", в которой поля "Время_измерений" и "Измерения" и таблица "Вторая", в которой поля "Время_давлений" и "Давления" В таблице "Первая" записи чередуются каждую секунду В таблице "Вторая" записи меняются только тогда, когда меняется параметр "Давления" То есть, количество записей в таблице "Вторая" гораздо меньше Я хочу в таблицу "Первая" справа добавить столбец "Давления", но чтобы по длине эти поля совпали. То есть, "растянуть" поле "Давление" на даты в поле "Время_измерений" с учетом дат в поле "Время_давлений" То есть, если дата в поле "Время_давлений" сравнялась или превысила дату в поле "Время_измерений", то пошли одинаковые значения "Давления" до тех пор, пока значение в поле "Время_измерений" не совпадет или не превысит следующее значение "Время_давлений" - тогда начинается череда других одинаковых значений "Давления" и так до следующего совпадения дат. Может быть, это можно сделать SQL-запросом? Спасибо!
0
|
|
| 12.08.2014, 12:39 | |
|
Ответы с готовыми решениями:
33
Запрос на объединение таблиц с поиском по преобразованной дате Объединение 2-х таблиц Объединение таблиц |
|
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 [ТС] | |
|
Прикрепляю файл-пример
0
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 13.08.2014, 11:25 | |
|
Все сделать можно, но есть тонкости. Возможно это только на данных примера, но что делать, когда времена во второй отсутствуют в первой (посмотрите запросы во вложении, смысл должен быть понятен по названию).
1
|
|
|
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
|
|
| 13.08.2014, 11:40 [ТС] | |
|
Если данные не совпадают (отсутствуют), то как и в первом примере, с одним параметром, добавить IF и прописать, что если нет совпадений, тогда " " . Я думаю так. Потом я сама отброшу строки с "Нет значений". Вопрос в том, как одновременно прицепить все параметры из Второй таблицы к Первой. На практике у меня 11 таких параметров. И они будут постоянно добавляться. Если писать 11 модулей и 11 запросов - мне кажется, это не рационально(( Как все параметры "растянуть" на время в Первой таблице?..(
0
|
|
|
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
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 13.08.2014, 12:15 | |
|
Посмотрите вложение. Сначала запросом Union_DT_ собираются все даты, затем в запросе Union_Rez_ к датам дописываются все результаты измерений-факты. На основе такого запроса и можно заполнять общую таблицу, а потом обрабатывать в ней данные, делать интерполяцию (почему, кстати обязательно ступенчатую, а не линейную или сплайнами?)
1
|
|
|
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
|
|
| 13.08.2014, 15:28 [ТС] | |
|
Здорово! Только не совсем понятно, что такое Вторая1.Температуры и Вторая2.Объемы. Откуда берутся эти таблицы, где прописаны?) И как заполнить пустоты одинаковыми значениями до тех пор, пока они не изменятся?
0
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||
| 13.08.2014, 16:37 | ||
Сообщение было отмечено Oda412 как решение
РешениеВо вложении база с заполнением. Заполняется таблица Union_Rez. Сначала запросом добавляются записи из запроса Union_Rez_, а потом в функции делается дозаполнение за один проход по таблице. Запуск - макросом Union_Rez*.
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
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||||||||
| 14.08.2014, 10:53 | ||||||||
Сообщение было отмечено Oda412 как решение
РешениеУ меня такой строчки не получилось, есть Call F_Union_Rez - вызов функции из модуля1
1
|
||||||||
|
314 / 2 / 2
Регистрация: 24.07.2013
Сообщений: 46
|
|
| 14.08.2014, 16:04 [ТС] | |
|
Спасибо огромное! Все, получилось. Фуууухх.. Теперь с содроганием думаю о том, когда данные с Измерениями и Давлением, Объемом и Температурой будут пополняться) Придется все вручную снова переделывать))))Хотя, в принципе, мне кажется, если в исходные таблицы просто доимпортировать данные к уже имеющимся, то и итоговая таблица Union_Rez поменяется..
0
|
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 14.08.2014, 16:27 | |
|
Если это новые данные (времен из них нет в таблице Union_Rez), то нужно просто запрос на удаление не выполнять (удалить из макроса). И все.
2
|
|
| 14.08.2014, 16:27 | |
|
Помогаю со студенческими работами здесь
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.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|