powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужна помощь в составлении запроса
24 сообщений из 24, страница 1 из 1
Нужна помощь в составлении запроса
    #38466273
Apocalyptis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица:
Номер_деталиВерсия_деталиНаименованиеи еще много полей...700 A 700 B 700 C 800 A 800 B
Поля Номер_детали и Версия_детали являются ключами.
Мне нужно сделать SELECT *, но чтобы в результат попали только записи с наибольшим значение версии для одного номера(или на крайний случай по одной записи на каждый номер детали). Вот так:
Номер_деталиВерсия_деталиНаименованиеи еще много полей...700 С 800 B
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38466320
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apocalyptis,

Интересный выбор ветки форума. Какую СУБД вы используете?
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38466361
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApocalyptisМне нужно сделать SELECT *, но чтобы в результат попали только записи с наибольшим значение версии для одного номера(или на крайний случай по одной записи на каждый номер детали)
GROUP BY и max() тебе в помощь...
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38466383
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или row_number()
Или cross apply
Или last_value()
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38466520
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чтобы оставаться в пределах эхотага, эти записи надо вынести в отдельную таблицу,
поскольку лично я подозреваю, что они являются отдельной сущностью по имени "текущая
версия" и в таблицу "история версий" попали по ошибке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38466645
Apocalyptis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в Акцессе работает такой код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT T1.*
FROM
( 
SELECT*
FROM Таблица1
) T1,
 
( 
SELECT num_, MAX(Ver_) AS max_ver
FROM Таблица1
GROUP BY num_
) T2
 
WHERE T1.num_ = T2.num_
  AND T1.ver_ = T2.max_ver


, но база в древнем парадоксе 1996 года и он ругается на второй select...
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38466715
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apocalyptisно база в древнем парадоксе 1996 года
это был удар ниже пояса
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38468091
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apocalyptis,

вытаскиваете результаты каждого подселекта в отдельные таблицы и тем самым "сводите задачу к решённой" (с)
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38470062
Apocalyptis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirApocalyptis,
вытаскиваете результаты каждого подселекта в отдельные таблицы и тем самым "сводите задачу к решённой" (с)
Да,я так же думал делать два запроса, а
Код: sql
1.
2.
WHERE T1.num_ = T2.num_
  AND T1.ver_ = T2.max_ver

делать в приложении
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38471687
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость333Apocalyptis,

Интересный выбор ветки форума. Какую СУБД вы используете?
да, ветки парадок 96-го года нету :)
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38472278
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durak,

есть "Другие СУБД".
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38473972
Apocalyptis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил так:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT * FROM Detali T1
WHERE Versia=
(
SELECT MAX(Versia) FROM Detali T2
WHERE T1.DetNum=T2.DetNum
)
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38473986
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApocalyptisРешил так:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT * FROM Detali T1
WHERE Versia=
(
SELECT MAX(Versia) FROM Detali T2
WHERE T1.DetNum=T2.DetNum
)


А чем это не устроило?

Apocalyptis
Код: sql
1.
2.
3.
SELECT num_, MAX(Ver_) AS max_ver
FROM Таблица1
GROUP BY num_
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474005
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApocalyptisМне нужно сделать SELECT *, но чтобы в результат попали только записи с наибольшим значение версии для одного номера(или на крайний случай по одной записи на каждый номер детали).
Всезаписи конечно не покажутся в этом варианте

Код: sql
1.
2.
3.
SELECT *, MAX(Ver_) AS max_ver
FROM Таблица1
GROUP BY num_


Но какую-то одну покажет точно.
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474052
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Вы пробовали свой скрипт исполнять-то?
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474217
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинВы пробовали свой скрипт исполнять-то?
Вот запустил на одной из своих табличек...

Код: sql
1.
2.
3.
SELECT *,max(cnt) as maxCnt
FROM soi_arh_data.pay
GROUP BY abn


Запрос отработал...

Авторр написал, что
ApocalyptisРешил так:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT * FROM Detali T1
WHERE Versia=
(
SELECT MAX(Versia) FROM Detali T2
WHERE T1.DetNum=T2.DetNum
)


У него так же отработал...

Так в чем тогда криминал?
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474285
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaВот запустил на одной из своих табличек...

Код: sql
1.
2.
3.
SELECT *,max(cnt) as maxCnt
FROM soi_arh_data.pay
GROUP BY abn


Запрос отработал...



Это в каком диалекте SQL запрос
Код: sql
1.
2.
3.
select *
 ...
group by [не полный список полей таблицы]


имеет шанс отработать?
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474311
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЭто в каком диалекте SQL запрос
Код: sql
1.
2.
3.
select *
 ...
group by [не полный список полей таблицы]


имеет шанс отработать?
Cache SQL.
Производителем утверждается, что этот "диалект" полностью соответствует стандарту SQL92...
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474315
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЭто в каком диалекте SQL запрос
Код: sql
1.
2.
3.
select *
 ...
group by [не полный список полей таблицы]


имеет шанс отработать?
Вроде MySQL позволяет подобные непотребства.
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474349
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вот вариант (рабочий) могу предложить...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
	*
FROM
	soi_arh_data.pay
Group by
	abn
Having
	"sum" = max("sum")
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474352
Apocalyptis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
SELECT *, MAX(Ver_) AS max_ver
FROM Таблица1
GROUP BY num_


я так пробовал, парадокс не понимает уже первую запятую
Код: sql
1.
SELECT *, MAX(Ver_) AS max_ver
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474358
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apocalyptis
Код: sql
1.
2.
3.
SELECT *, MAX(Ver_) AS max_ver
FROM Таблица1
GROUP BY num_


я так пробовал, парадокс не понимает уже первую запятую
А попробуй мой последний вариант...
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474749
Apocalyptis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaА попробуй мой последний вариант...
Ругается на group by
...
Рейтинг: 0 / 0
Нужна помощь в составлении запроса
    #38474957
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ApocalyptisРугается на group by
Значит не судьба...
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужна помощь в составлении запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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