powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Запрос с отсечением ненужных данных
16 сообщений из 16, страница 1 из 1
Запрос с отсечением ненужных данных
    #37583152
LaFuriaRoja_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Нужна помощь в запросе.

Есть таблица с данными в которых возможны повторы одного из полей. В зависимости от значения 2-го поля нужно кое какие строки оставить. Допустим есть набор строк в таблице с одинаковым значением в поле № Заказа, а поле статус разное.

Нужно отсеч повторы одних и тех же Заказов, и оставить 1-й в списке (тоесть тот который по дате пришел 1й на обработку) со статусом Отослано или необработано

Примеры

Ситуация 1

ИД Дата Продукт №заказа Статус
1 01.12 Мыш2 55 Отослано
2 02.12 Мыш2 55 Отослано
3 02.12 Мыш2 55 Необработано
4 03.12 Мыш2 55 Необработано

В етом случае нужно отсеч все кроме 1 01.12 Мыш2 55 Отослано

Ситуация 2

ИД Дата Продукт №заказа Статус
1 01.12 Мыш2 55 Отказано
2 02.12 Мыш2 55 Отослано
3 02.12 Мыш2 55 Необработано
4 03.12 Мыш2 55 Необработано

В етом случае нужно отсеч все кроме 2 02.12 Мыш2 55 Отослано

Ситуация 3

ИД Дата Продукт №заказа Статус
1 01.12 Мыш2 55 Отказано
2 02.12 Мыш2 55 Отказано
3 02.12 Мыш2 55 Необработано
4 03.12 Мыш2 55 Необработано

В етом случае нужно отсеч все кроме 3 02.12 Мыш2 55 Необработано
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583187
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LaFuriaRoja_Fan , в условии делай сравнение даты на равенство с результатом подзапроса, который вернёт ту самую, ключевую дату...
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583192
LaFuriaRoja_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если № заказа встречаетса только 1 раз то оставляем тот что со статусом отослано или необработано
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583210
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LaFuriaRoja_FanА если № заказа встречаетса только 1 раз то оставляем тот что со статусом отослано или необработано
Тогда добавть еще одно условие с или... Ну и подзапрос, который вернёт количество записей нужного типа...
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583261
LaFuriaRoja_Fan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вот попроще придумал

Select ... from Table where (Статус like '%Отослано%' or Статус like '%Необработано%' )

group by №заказа

Вроде должно правильно все быть?... Но база большая, не вижу сразу недочетов
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583604
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LaFuriaRoja_Fan, что именно в Select (...), почему Like?
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583856
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LaFuriaRoja_FanЯ вот попроще придумал

Код: plsql
1.
2.
3.
Select ... from Table where (Статус like '%Отослано%' or Статус like '%Необработано%' )

group by №заказа


"Проще" не всегда проще... И не всегда правильно...

LaFuriaRoja_FanВроде должно правильно все быть?
Если сравнить с тем, что ты писал ранее - твой запрос полная ерунда.

Это
Код: sql
1.
Статус like '%Отослано%' or Статус like '%Необработано%' 


ну просто перл!

А гда работа с датами?
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37583978
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС нужно разбираться, что такое нормализация. Я так понял, он не в курсе.

PS.
А то потом с одной стороны начинаются сказки, что то, какое каше особенное до такой степени, что не нужно понимать теорию реляционных баз данных,
а с другой стороны начинаются вопли, про косоруких программеров.
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37584973
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С вашей структурой данных думаю можно выбрать таким образом:

Select ... from Table where Статус in ('Отослано', 'Необработано') group by №заказа having %ID = min(%ID)

Но это будет работать только в случае, если у вас поступления по порядку в базу заносятся
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37585004
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosС вашей структурой данных думаю можно выбрать таким образом:

Код: sql
1.
Select ... from Table where Статус in ('Отослано', 'Необработано') group by №заказа having %ID = min(%ID)


А даты где?
Закладываться на ИД дело не благодарное...
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37585010
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так тогда уже...

Код: sql
1.
Select ... from Table where Статус in ('Отослано', 'Необработано') group by №заказа having Дата = min(Дата)
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37585022
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, работа с датами в том формате, как они указаны в примере (я так подозреваю, что это просто строки) не прокатит.
В случае, если там используется %Date или %TimeStamp - то достаточно переделать блок having
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37585158
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosя так подозреваю, что это просто строки
Ну строки это не даты...
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37586106
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не все даты - строки, например %Date :)
Согласен, что %TimeStamp хранится в виде строки, но строки определенного формата, который позволяет корректно сортировать даты между собой, а вот формат ДД.ММ из примера нормально не отсортируется.
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37586152
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mos , в таком случае не понятны твои сомнения в сообщении выше...
...
Рейтинг: 0 / 0
Запрос с отсечением ненужных данных
    #37586305
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa , мои сомнения относятся к тому, что нельзя в таком виде как в примере использовать даты в блоке having.
В остальномполностью согласен с вашим вариантом.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Запрос с отсечением ненужных данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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