Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23

Как получить все записи с максимальным значением одного из полей?

05.07.2009, 11:11. Показов 3152. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется , условно говоря, база документов со всеми их атрибутами. В базе могут находиться одинаковые документы, различающиеся только номером версии. Как составить запрос, чтобы выдавались все документы с максимальным значением номера версии ? База на Акссесс 97.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2009, 11:11
Ответы с готовыми решениями:

Получить новую последовательность, выбросив из исходной все члены с максимальным значением
Условие:Даны действительные числа A,A,A,...,A.Получить новую последовательность, выбросив из исходной все члены со значением...

Получить новую последовательность, выбрав из исходной все члены с максимальным значением
Даны действительные числа А1,А2,...An. Получить новую последовательность, Выбрав из исходной все члены со значением Max(A1,A2,...An). ...

Массивы: получить новый массив, выбросив из исходной все члены с максимальным значением
Получить новый массив, выбросив из исходной все члены с максимальным значением. написать программу на языке С++

25
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 70
05.07.2009, 14:09
'SELECT MAX (Номер_документа) FROM Имя_бд WHERE имя_документа=имя_документа_которое_нужн о'
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
05.07.2009, 14:21  [ТС]
Tory
В том то и дело, что имя_документа_которое_нужно это все документы в базе. Нужно отсеять документы у которых имеются более поздние версии.
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
05.07.2009, 15:18  [ТС]
Вот пример:
Есть:
Doc1 Ver1
Doc1 Ver2
Doc2 Ver1
Doc3 Ver1
Doc3 Ver2
Doc3 Ver3
Результатом запроса должно стать:
Doc1 Ver2
Doc2 Ver1
Doc3 Ver3
0
Axel
05.07.2009, 23:44
http://relib.com/forums/topic.asp?id=777500
Axel
05.07.2009, 23:53
http://relib.com/forums/topic.asp?id=777166
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
07.09.2009, 15:15  [ТС]
А что за оператор такой 'in' ? Чего-то описания я нигде не нашел. А запрос с ним то работает то нет.

Собственно запрос у меня вот какой:
sql_select = 'select * from knowbase where 1 = 1 ' & DocID1 & DocID2 & Date1 & Date2 & Otdel & FIO & DocumentAlias & PartInsur & Tema & Ext & Forma1 & Actual & Approved & ' and FamCount in ' & '(' & 'Select Max(FamCount) from knowbase GROUP BY DocumentAlias , PartInsur, Forma1, Tema' & ') order by ID'

И нужно чтобы выбирался только максимальный этот FamCount из документов с одинаковым DocumentAlias, PartInsur, Forma1, Tema
0
Axel
07.09.2009, 22:46
where ID in (1,2,3,4)
выбирает все записи, у которых поле ID в значение 1,2,3,4... и т.д.
ты напиши что у тебя в итоге получается.. в запросе.. без всяких там переменных
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
08.09.2009, 13:04  [ТС]
Ну результирующий запрос зависит от значений переменных.
Но может выглядеть например вот так:
select * from knowbase where 1 = 1 and PartInsur = 'Банковское' and Forma1 = 'Аддендум' and FamCount in (Select Max(FamCount) from knowbase GROUP BY DocumentAlias , PartInsur, Forma1, Tema) order by ID
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
17.12.2009, 15:43  [ТС]
Ээх, неужели нельзя такой запрос составить?
Задача на мне с той поры так и весит, и периодически о ней вспоминают.
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
17.12.2009, 15:44  [ТС]
опечатался, задача 'висит' конечно.
0
0 / 0 / 0
Регистрация: 23.10.2008
Сообщений: 27
18.12.2009, 19:32
SELECT Doc, Max(Ver) FROM YourTable GROUP BY Doc
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
20.12.2009, 10:54  [ТС]
Пробую в данную схему засунуть свой конкретный запрос:

SELECT (Select * from knowbase where 1=1 and PartInsur = 'Банковское' and Forma1 = 'Аддендум'), Max(FamCount)
FROM knowbase
GROUP BY (Select * from knowbase where 1=1and PartInsur = 'Банковское' and Forma1 = 'Аддендум' );

Пишет
Syntax error
0
0 / 0 / 0
Регистрация: 23.10.2008
Сообщений: 27
20.12.2009, 12:07
Правильно пишет. Попробуйте так.

SELECT Doc, Max(Ver) FROM YourTable
WHERE PartInsur = 'Банковское' and Forma1 = 'Аддендум'
GROUP BY Doc
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
20.12.2009, 12:11  [ТС]
'Doc' у меня формируется динамически, и 'WHERE PartInsur = 'Банковское' and Forma1 = 'Аддендум'' это один из возможных вариантов 'Doc'
0
0 / 0 / 0
Регистрация: 23.10.2008
Сообщений: 27
20.12.2009, 12:38
SELECT Doc, Max(Ver) FROM YourTable
WHERE Doc IN (SELECT Doc FROM YourTable WHERE PartInsur 'Банковское' and Forma1 = 'Аддендум')
GROUP BY Doc
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
20.12.2009, 12:41  [ТС]
Doc - это такой оператор языка SQl ?
0
0 / 0 / 0
Регистрация: 23.10.2008
Сообщений: 27
20.12.2009, 12:57
Это имя поля из Вашего примера, в котором содержится номер документа. Значения поля - Doc1, Doc2 и т.д.
0
0 / 0 / 0
Регистрация: 10.02.2009
Сообщений: 23
20.12.2009, 13:05  [ТС]
Ну это я пример такой упрощенный привел.
На самом деле то что в примере Doc, у меня выглядит как:
where 1 = 1 ' & DocID1 & DocID2 & Date1 & Date2 & Otdel & FIO & DocumentAlias & PartInsur & Tema & Ext & Forma1 & Actual & Approved

и в зависимости от пользовательского запроса с подставнокой переменных может выглядеть как:

where 1 = 1 and PartInsur = 'Банковское' and Forma1 = 'Аддендум'

или еще как-то.

И нужно чтоб из всех этих документов выбирались только с максимальным номером версии.
0
0 / 0 / 0
Регистрация: 23.10.2008
Сообщений: 27
20.12.2009, 13:57
Вам необходимо создать поле в таблице, однозначно определяющее документ, например, Doc. При этом первичным ключем таблицы может быть комбинация полей Doc и Version. Тогда не придется писать запросы такого рода

SELECT First(Txt) AS Txt1, First(Num) AS Num1, First(Dt) AS Dt1, Max(Ver) AS MaxVer
FROM YourTable
WHERE (((Txt+CStr(Num)+CStr(Dt)) In (SELECT Txt+CStr(Num)+CStr(Dt) FROM YourTable WHERE Txt = 'Doc3' AND Num=3 AND Dt=#10/13/2003 10:49:03#)))
GROUP BY (Txt+CStr(Num)+CStr(Dt));

где Txt, Num, Dt - атрибуты искомого документа, имющие тип текст, число и дата/время соответственно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2009, 13:57
Помогаю со студенческими работами здесь

Получить из исходного массива новый массив, исключив из него все элементы с максимальным значением
Задан массив. Составить алгоритм и программу, которая выводит исходный массив и массив, полученный в результате выполнения требований...

Есть таблица. Как напечатать N копий записи из неё?. N - значение одного из полей записи.
Помогите пожалуйста. СРОЧНО!!! НАДО!!! Есть таблица. Как напечатать N копий записи из неё?. N - значение одного из полей записи. (win98se,...

Как получить элемент списка с максимальным значением свойства?
должно быть очень просто. помогите, плз. имеется: class Ob { public Prop0 { set; get; } public Prop1 { set; get; } } ...

Как выбрать запись и все значения её полей по максимальному значению одного из полей?
Как выбрать запись и все значения её полей по максимальному значению одного из полей? Код. Форма "фрм_03_03_Студенты_Лент"....

Найти среднее арифметическое между максимальным значением матрицы и максимальным значением массива
Заданы матрица и массив. Определить среднее арифметическое между максимальным значением элементов матрицы и максимальным значением...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru