powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5:
6 сообщений из 6, страница 1 из 1
Firebird 2.5:
    #39569953
wofs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть таблица:
Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE W_TMP_TBL (
    IDOWNER          BIGINT,
    ID               BIGINT,
    WCS              INTEGER,
    IDMATCHPOSITION  BIGINT
);


Есть данные в ней:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 68, 25, 11);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 61, 30, 11);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 64, 45, 11);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 62, 67, 13);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 63, 67, 13);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 65, 12, 15);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 67, 45, 17);
INSERT INTO W_TMP_TBL (IDOWNER, ID, WCS, IDMATCHPOSITION)
               VALUES (1, 66, 89, 17);


Выглядит это так:
IDOWNERIDWCSIDMATCHPOSITION16130111626713163671316445111651215167451716825111668917

Запросом:
Код: plsql
1.
2.
3.
4.
5.
select t1.IDOWNER,t1.ID,t1.WCS,t1.IDMATCHPOSITION from W_TMP_TBL t1
inner join(
SELECT IDMATCHPOSITION, MAX(WCS) MWCS FROM W_TMP_TBL
GROUP BY IDMATCHPOSITION ) t2 ON
(t1.WCS=t2.MWCS AND t1.IDMATCHPOSITION = t2.IDMATCHPOSITION)


Получаю почти нужные данные:
IDOWNERIDWCSIDMATCHPOSITION16512151644511162671316367131668917

Пару слов о назначении таблицы. Таблица содержит результат сравнения (WCS) позиции (IDMATCHPOSITION) с позицией (ID) у владельца (IDOWNER).
В некоторых случаях значения WCS, при аналогичных IDMATCHPOSITION могут быть одинаковыми.
В примере строки 3 и 4. Стоит задача отфильтровать из выборки одну их одинаковых строк (3 или 4 в данном случае). Принцип фильтрации не критичен. В итоге должен получиться запрос из 4х строк.
Сломал всю голову - прошу помощи...
...
Рейтинг: 0 / 0
Firebird 2.5:
    #39569954
wofs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл дописать заголовок :(
Firebird 2.5: помогите с запросом выборки
...
Рейтинг: 0 / 0
Firebird 2.5:
    #39569980
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wofs,

лично я вообще ничего не понял: ни исходных данных, ни цели.
Для чего делать выборку, которая не выполняет то, что надо, а потом уже из этой выборки делать еще одну?
...
Рейтинг: 0 / 0
Firebird 2.5:
    #39569987
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДлично я вообще ничего не понял
[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Firebird 2.5:
    #39570058
Dmitry Kurbsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
select t1.IDOWNER,min(t1.ID),t1.WCS,t1.IDMATCHPOSITION from W_TMP_TBL t1
inner join(
SELECT IDMATCHPOSITION, MAX(WCS) MWCS FROM W_TMP_TBL
GROUP BY IDMATCHPOSITION ) t2 ON
(t1.WCS=t2.MWCS AND t1.IDMATCHPOSITION = t2.IDMATCHPOSITION)
GROUP BY 1,3,4
...
Рейтинг: 0 / 0
Firebird 2.5:
    #39570542
wofs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Kurbsky,
Спасибо огромное! То, что надо!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5:
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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