Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2023, 19:12   #1
FrozenStul
Новичок
Джуниор
 
Регистрация: 07.02.2023
Сообщений: 2
Вопрос Группировка уникальных значений по полю id

Добрый день. Есть таблица history. На приложенном скриншоте сделал выборку из нужных для выгрузки полей. Объясню что за что отвечает:

id_op (number) - идентификатор операции. Если в операцию вносилось изменение (например, изменится сумма, дата или номер), идентификатор не изменится. Будет столько записей с таким id, сколько изменений вносилось в эту операцию.

opnumber (number) - номер операции. Может изменяться.

opdate (date) - дата исходной операции. Может изменяться.

actdate (date) - дата изменения исходной операции.

username (varchar) - кто внёс запись.

id_top (number) - идентификатор типа операции.

opsum (float) - сумма операции. Может изменяться.

В чём суть моего вопроса:
Нужно вывести все записи у которых actdate попадает в период с 01.12.2022 по 31.12.2022 с id_top = 15 и в которых менялась первичная дата операции (opdate) или номер операции (opnumber). Поле opsum не имеет никакого значения, оно здесь как доп. поле, которое может изменяться, может имеет значение. По итогу в выборке должен быть id_op и по нему несколько разных opnumber либо разных opdate. Значения остальных колонок вообще не имеют значения, важен сам факт нескольких разных значений opnumber или opdate для одного id_op. Если opnumber или opdate для id_op не менялся, такие записи в выборку попасть не должны.

Скелет скрипта который использовал я:
Код:
select  id_op, opnumber, opdate, actdate, username, id_top, opsum from history
where id_top = 15
and actdate >= to_date('01-12-2022 00:00:00', 'dd-mm-yyyy hh24:mi:ss')
and actdate < to_date('01-01-2023 00:00:00', 'dd-mm-yyyy hh24:mi:ss')
Дальше условие на суть выгрузки поставить не удается, у меня получалось так, что условно было несколько id_op и несколько opnumber и opdate, но они все были одинаковые. Видимо в операции могла меняться сумма (opsum).

Я извиняюсь, если синтаксически вопрос решается просто, но я убил на это уже два дня и видимо пока не так хорош в sql. Помогите, пожалуйста, написать скрипт. Буду благодарен.
Изображения
Тип файла: png image.png (29.7 Кб, 14 просмотров)
FrozenStul вне форума Ответить с цитированием
Старый 07.02.2023, 19:27   #2
FrozenStul
Новичок
Джуниор
 
Регистрация: 07.02.2023
Сообщений: 2
По умолчанию

Добавлю дополнительно, использую pl sql developer
FrozenStul вне форума Ответить с цитированием
Старый 07.02.2023, 19:40   #3
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 492
По умолчанию

Цитата:
Сообщение от FrozenStul Посмотреть сообщение
видимо пока не так хорош в sql
а эту таблицу кто нафантазировал?
Valick вне форума Ответить с цитированием
Старый 08.02.2023, 09:19   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
в которых менялась ...

записи с одним id_op и РАЗЛИЧНЫМИ ... ?

Код:
select id_op, count(distinct opnumber), count(distinct opdate)
from ...
where ...
group by id_op
heving count(opnumber)>1 or count(opdate)>1
Код:
select * 
from ( select id_op, count(distinct opnumber) as qn, count(distinct opdate) as qd
       from ...
       where ...
       group by id_op
      ) as mm
where qn>1 or qd>1
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор уникальных значений Kozika Microsoft Office Excel 22 25.01.2017 10:41
Группировка значений 123456678 Microsoft Office Excel 13 06.01.2015 02:27
Сводная таблица, не доступна функция группировка по полю layriona Microsoft Office Excel 2 02.10.2014 14:40
Отбор уникальных значений Alex___ Microsoft Office Excel 11 18.08.2009 19:31
Выборка уникальных значений Mary_star SQL, базы данных 9 11.02.2008 22:46