Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 5

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

26.09.2019, 19:34. Показов 2682. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, вопрос собственно прямо пропорционален заголовку. По сути, имеется таблица данных с кол-вом строк превышающим возможности Access. При жизненно важном (для начисления льготного стажа) отборе данных, массив уменьшится ориентировочно в 30-40 раз.
В данной таблице имеется информация о штатной структуре предприятия за каждую неделю (не всегда) существования в течении 5 лет. Необходимо в итоге получить таблицу с отсортированными данными по полям "ФИО"&"дата рождения" где в результате будут выведены строки из массива с следующим условием отбора: первая запись, последняя запись, уникальная запись.
Условие отбора: если запись не повторяется (имеется поле отражающее дату записи) более месяца, условие отбора повторить.
В итоге должна появиться таблица, которая отражает, когда "ИВАНОВ ИВАН ИВАНОВИЧ"&"01/01/1991" появился в базе, исчез из базы, вновь появился в базе спустя "Х" количество месяцев.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.09.2019, 19:34
Ответы с готовыми решениями:

GROUP BY вывод из бд последней уникальной записи
Доброго времени суток сталкнулся с проблемкой есть скрипт вывода из бд по средством GROUP BY $result = mysql_query("SELECT * FROM...

Запрос на добавление уникальной записи
Есть таблица, которая состоящая из 2х полей: ФИОпользователя, Login, тип обоих - текст Необходимо чтобы таблица пополнялась (insert...

Запрос подсчета количества вхождений каждой уникальной записи в таблице
Пожалуйста, помогите решить проблему, а то уже "сломал глову". Есть 2 таблицы: 1. users - зарегистрированные пользователи, с полями...

10
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,288
26.09.2019, 20:37
Цитата Сообщение от D-eniel Посмотреть сообщение
имеется таблица данных с кол-вом строк превышающим возможности Access.
интересна то как
Цитата Сообщение от D-eniel Посмотреть сообщение
В данной таблице имеется информация о штатной структуре предприятия за каждую неделю (не всегда) существования в течении 5 лет.
тю...
0
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 5
26.09.2019, 21:44  [ТС]
"тю..." это - элементарно, или это - неосуществимо, или это - Я бог, а вы нет))))?
Пинка задайте, если не трудно, в нужном направлении.

Добавлено через 2 минуты
"интересна то как" - "не хватает системных ресурсов", выразился не верно))

Добавлено через 3 минуты
З.Ы. 156 834 строки

Добавлено через 8 минут
З.Ы. З.Ы. Не спрашивайте КАК это произошло. не отвечу, нужна помощь в реализации, возможно другим способом, на кону льготная пенсия людей через надцать лет, не большого количества, но людей.
"З.Ы. 156 834 строки" - таких таблиц 24 шт., и естественно имеются пересечения.
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
26.09.2019, 23:48
D-eniel, через временные таблицы (пару шт.) не пробовали работать?
А то:
Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Public Sub CreateTempDb(Optional TempFileName As String = "TempDB.accdb")
'es - 28.09.2012 : v003 : LE - 12.07.2018
'--------------------------------------------------------------------
'Создает временную базу данных (MSA-2000-2003) в тек. папке приложения ,
' копирует туда эталонные таблицы  и подключает эти таблицы
'ПАРАМЕТРЫ ВЕРСИИ БД:
'    dbVersion20  - MSA-2
'    dbVersion30  - MSA-97 (compatible with version 3.5).
'    dbVersion40  - MSA-2000-2003
'    dbVersion120 - MSA-2007-2010
'--------------------------------------------------------------------
Dim TempDBPath As String
Dim db As DAO.Database
Dim strDBaseLink As String
Dim l As Long
Dim sTableNameTempalete$, sTableNameLocal$
 
On Error GoTo CreateTempDb_Err
'Получаем путь к создаваемой базе
    TempDBPath = CurrentProject.Path & "\" & TempFileName
    MkDir CurrentProject.Path & scDataSubFolder
        
'Сначала удаляем старую (If present)
    If Dir(TempDBPath) <> "" Then
        Kill TempDBPath
        DoEvents
        Err.Clear
    End If
 
'Создаем базу версии MSA-2000-2003
    Set db = DBEngine.CreateDatabase(TempDBPath, dbLangCyrillic, dbVersion120)
    strDBaseLink = ";DATABASE=" & TempDBPath
 
'Создаём таблицу во временной базе путем копирования эталонной
'01 = 00tp_TabelFromExcel
    sTableNameTempalete = "00tp_TabelFromExcel"
        sTableNameLocal = Mid(sTableNameTempalete, 3)
        DoCmd.CopyObject TempDBPath, sTableNameLocal, acTable, sTableNameTempalete
    'Присоединим созданную таблицу к текущей базе
    l = esConnectToTable(strDBaseLink, sTableNameLocal)
    'Debug.Print "ConnectToTable = " & l
 
'02 = 00tp_AIR_Report
    sTableNameTempalete = "00tp_AIR_Report"
        sTableNameLocal = Mid(sTableNameTempalete, 3)
        DoCmd.CopyObject TempDBPath, sTableNameLocal, acTable, sTableNameTempalete
    'Присоединим созданную таблицу к текущей базе
    l = esConnectToTable(strDBaseLink, sTableNameLocal)
 
'Готово!
    CurrentDb.TableDefs.Refresh  'Обновляем список таблиц тек. базы (не обязательно)
 
CreateTempDb_Bye:
    On Error Resume Next
    db.Close
    Set db = Nothing
    Err.Clear
    Exit Sub
 
CreateTempDb_Err:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in procedure CreateTempDb", vbCritical, "Error!"
    Resume CreateTempDb_Bye
    
End Sub


Добавлено через 1 минуту
Цитата Сообщение от Панург Посмотреть сообщение
тю...
А щё вы хочите!? - он же сам спросил ...
да не cyberforum.ru - это ж не Привоз ...
1
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,288
27.09.2019, 04:34
Цитата Сообщение от D-eniel Посмотреть сообщение
"тю..." это - элементарно, или это - неосуществимо, или это - Я бог, а вы нет))))?
"тю" это "тю", и касалось утверждений про Access.

Касательно сабжа - ответ тоже хочешь получить на пальцах? Для конкретных ответов требуются конкретные данные во вполне конкретных таблицах.
0
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 5
27.09.2019, 17:37  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
Касательно сабжа - ответ тоже хочешь получить на пальцах? Для конкретных ответов требуются конкретные данные во вполне конкретных таблицах.
Тю.., не проблема, прилагаю уменьшенную копию, в запросе-таблице:
1. Уникальная запись выводится автоматически
2. Условие отбора: если запись не повторяется (поле: дата записи) более недели но меньше месяца, условие отбора повторить, следующую запись не выводить.
В итоге должна появиться таблица, которая отражает, когда "ИВАНОВ ИВАН ИВАНОВИЧ"&"01/01/1981" появился в базе, исчез из базы на срок более месяца, вновь появился в базе.
Заранее благодарен за помощь.
Вложения
Тип файла: rar Database1.rar (24.3 Кб, 6 просмотров)
0
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,288
27.09.2019, 19:40
Цитата Сообщение от D-eniel Посмотреть сообщение
прилагаю уменьшенную копию
угу. А теперь приложи вторую таблицу с записями которые должны остаться
0
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 5
27.09.2019, 21:01  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
записи которые должны остаться
итог после группировки
Вложения
Тип файла: xlsx итог.xlsx (11.2 Кб, 5 просмотров)
0
Мы один, давай на "ты"
3849 / 1393 / 345
Регистрация: 16.06.2016
Сообщений: 3,288
29.09.2019, 20:36
Лучший ответ Сообщение было отмечено D-eniel как решение

Решение

D-eniel, возможно (скорее всего) не самый быстрый запрос
Кликните здесь для просмотра всего текста
SQL
1
2
3
4
5
6
SELECT q1.ФИО, q1.[Дата записи]
FROM (SELECT t.ФИО, t.[Дата записи], DateDiff('d', (SELECT MAX(t1.[Дата записи]) AS MaxDate FROM [1 направление] AS t1 WHERE  t1.ФИО= t.ФИО AND t1.[Дата записи]<t.[Дата записи] ), t.[Дата записи]) AS DateDown, 
DateDiff('d', t.[Дата записи],(SELECT MIN(t1.[Дата записи]) AS MinDate FROM [1 направление] AS t1 WHERE  t1.ФИО= t.ФИО AND t1.[Дата записи]>t.[Дата записи] )) AS DateUp
FROM [1 направление] AS t)  AS q1
WHERE q1.DateDown>31 OR q1.DateDown IS NULL OR q1.DateUp>31 OR q1.DateUp IS NULL
ORDER BY 1, 2;
1
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 5
29.09.2019, 20:55  [ТС]
Цитата Сообщение от Панург Посмотреть сообщение
возможно (скорее всего) не самый быстрый запрос
главное - результат, спасибо за помощь!
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
30.09.2019, 14:47
Цитата Сообщение от D-eniel Посмотреть сообщение
По сути, имеется таблица данных с кол-вом строк превышающим возможности Access.
Таблицы лучше хранить на SQL сервере, но даже тогда от количества записей ничего зависеть не будет, тут играет роль объём, а это 20 записей с файлами в поле OLE/вложение по 100 мегабайт.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2019, 14:47
Помогаю со студенческими работами здесь

Чтение из типизированного файла с последней записи и до первой
Нужно вывести на экран записи которые хранятся в файле. Но вывести надо начиная с последней записи и заканчивая первой. Я уже измучился....

Как получить id первой и последней записи (по дате) категории?
Подскажите, плиз! Спасибо

Запрос по последней записи в MSSql
Еще раз здравствуйте, Такая проблема у меня: Нужен запрос - есть Три поля (marka_avto,datvid,sdan_litr), нужно чтобы выводилось значения...

Дано число. Посчитать разность между первой и последней цифрой десятичной записи этого числа
Дано число. Посчитать разность между первой и последней цифрой десятичной записи этого числа. Код написал, но не правильно, не робит........

Найти сумму первой и последней цифры в десятичной записи целого неотрицательного числа n (без использования строк)
Найти сумму первой и последней цифры в десятичной записи целого неотрицательного числа n (без использования строк).


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru