Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL запрос из трех таблиц без повторов / 12 сообщений из 12, страница 1 из 1
25.01.2021, 17:19
    #40038753
mdli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
Здравствуйте.

Есть три таблицы вида с полями
qselFoldersSyst:
1 fldrFolder

qfltOutPostavshiki:
2 outFolder
outSendDate

qfltInPostavshiki:
3 inFolder
inArrivalDate

Есть запрос вида
Код: sql
1.
2.
3.
4.
5.
SELECT qselFoldersSyst.fldrFolder, qfltOutPostavshiki.outSendDate, qfltInPostavshiki.inArrivalDate
FROM (qselFoldersSyst INNER JOIN qfltOutPostavshiki ON qselFoldersSyst.fldrFolder = qfltOutPostavshiki.outFolder) INNER JOIN qfltInPostavshiki ON qselFoldersSyst.fldrFolder = qfltInPostavshiki.inFolder
GROUP BY qselFoldersSyst.fldrFolder, qfltOutPostavshiki.outSendDate, qfltInPostavshiki.inArrivalDate
HAVING (((qselFoldersSyst.fldrFolder)=1032))
ORDER BY qfltOutPostavshiki.outSendDate, qfltInPostavshiki.inArrivalDate;


Соответственно при таком запросе получается табличка вида
fldrFolder outSendDate inArrivalDate
1032 19.03.2020 29.06.2020
1032 19.03.2020 11.08.2020
1032 19.03.2020 26.11.2020
1032 08.07.2020 29.06.2020
1032 08.07.2020 11.08.2020
1032 08.07.2020 26.11.2020
1032 31.08.2020 29.06.2020
1032 31.08.2020 11.08.2020
1032 31.08.2020 26.11.2020



а нужно в виде

Код: sql
1.
2.
3.
19,03,2020        29,06,2020
08,07,2020        11,08,2020
31,08,2020        26,11,2020 



Подскажите как правильно составить запрос ?
...
Рейтинг: 0 / 0
25.01.2021, 18:23
    #40038769
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
mdli,
А как эти таблички связаны?(ведь если в других таблицах ручками набирать [fldrFolder]-это верный путь к ошибкам,которые исключатся при связывании и запрос станет очень простым.
По сути:есть такая функция FORMAT
...
Рейтинг: 0 / 0
25.01.2021, 18:40
    #40038773
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
Пронумеровать записи в подчинённых таблицах, и при связывании также требовать равенства этого номера.
...
Рейтинг: 0 / 0
25.01.2021, 18:59
    #40038779
mdli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
sdku,

Таблички связаны INNER JOIN по полям qselFoldersSyst.fldrFolder = qfltOutPostavshiki.outFolder и qselFoldersSyst.fldrFolder = qfltInPostavshiki.inFolder

На запятые не обращайте внимания, мне нужно 3 записи вместо 9
...
Рейтинг: 0 / 0
25.01.2021, 19:02
    #40038783
mdli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
Akina,

Таблицы делал не я и я вообще не понимаю, как сделать правильный запрос.
То есть нужно добавить связи главный-подчиненный между 1 и 2 и также между 2 и 3 таблицами ? С полями ?
...
Рейтинг: 0 / 0
25.01.2021, 19:11
    #40038785
mdli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
Akina,

Я чего то жестко затупил от такой постановки задачи и думал что можно как то решить, и при этом совсем забыл как правильно делать базы данных
...
Рейтинг: 0 / 0
25.01.2021, 21:43
    #40038811
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
mdli

Я чего то жестко затупил от такой постановки задачи и думал что можно как то решить, и при этом совсем забыл как правильно делать базы данных
Да уж....для хранения этой информации одной таблицы и то много будет-короче 1 таблица и 1 справочник-этого за глаза
...
Рейтинг: 0 / 0
26.01.2021, 02:08
    #40038842
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
Прощу пардону:неправильно Вас понял-сейчас перечитал.
Вы хотите вывести для одинаковых дат в поле outSendDate максимальные даты в поле inArrivalDate-так?
Гляньте это:
...
Рейтинг: 0 / 0
26.01.2021, 03:02
    #40038845
mdli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
sdku,

не максимальные даты, а сделать outSendDate без дублей. в примере выводится минимальная дата, потом та что между мин и макс, потом максимальная. Вот как сделать чтобы в 3 столбце выводилось 3 строки и во 2 столбце тоже 3 ? И был полный перебор всех дат в обоих столбцах ?

И должно получится 3 записи в этом примере, а может быть и 4 и 5 и больше.
Я пока что нашел способ добавить поле в 3 таблицу и сделать зависимость между 1 и 2 а также между 2 и 3 таблицами, со связями.
Но записей очень много порядка 10 000 и проставлять вручную номера в 3 таблицу будет трудно.
...
Рейтинг: 0 / 0
26.01.2021, 03:14
    #40038849
mdli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
sdku,

Допустим можно найти минимальные и максимальные даты.
Но как в таком случае найти даты между ними ? В примере будет 1 средняя строка, а ведь если записей 4 то будет 2 средние строки, 5 записей - будет 3 средние строки, а найти средние строки - это задача как найти все строки. Так что печалька.
...
Рейтинг: 0 / 0
26.01.2021, 10:19
    #40038882
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
mdli,
если выкинуть из запроса fldrFolder, все связи, сгруппировать данные таблиц, отфильтровать по константе да отсортировать по возрастанию, то должно получится искомое. но для чего это недоразумение может пригодиться?хз
...
Рейтинг: 0 / 0
26.01.2021, 11:58
    #40038933
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос из трех таблиц без повторов
mdli
sdku,
Допустим можно найти минимальные и максимальные даты.
Но как в таком случае найти даты между ними ? В примере будет 1 средняя строка, а ведь если записей 4 то будет 2 средние строки, 5 записей - будет 3 средние строки, а найти средние строки - это задача как найти все строки. Так что печалька.
Если кто-то что-то из этого понял-не сочтите за труд перевести на понятный язык
alecko
.....но для чего это недоразумение может пригодиться?хз
вот это точно!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL запрос из трех таблиц без повторов / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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