Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.12.2011, 14:58
|
|||
|---|---|---|---|
|
|||
Запрос с отсечением ненужных данных |
|||
|
#18+
Добрый день! Нужна помощь в запросе. Есть таблица с данными в которых возможны повторы одного из полей. В зависимости от значения 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 Необработано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 15:08
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
LaFuriaRoja_Fan , в условии делай сравнение даты на равенство с результатом подзапроса, который вернёт ту самую, ключевую дату... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 15:08
|
|||
|---|---|---|---|
|
|||
Запрос с отсечением ненужных данных |
|||
|
#18+
А если № заказа встречаетса только 1 раз то оставляем тот что со статусом отослано или необработано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 15:12
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
LaFuriaRoja_FanА если № заказа встречаетса только 1 раз то оставляем тот что со статусом отослано или необработано Тогда добавть еще одно условие с или... Ну и подзапрос, который вернёт количество записей нужного типа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 15:27
|
|||
|---|---|---|---|
|
|||
Запрос с отсечением ненужных данных |
|||
|
#18+
Я вот попроще придумал Select ... from Table where (Статус like '%Отослано%' or Статус like '%Необработано%' ) group by №заказа Вроде должно правильно все быть?... Но база большая, не вижу сразу недочетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 17:29
|
|||
|---|---|---|---|
|
|||
Запрос с отсечением ненужных данных |
|||
|
#18+
LaFuriaRoja_Fan, что именно в Select (...), почему Like? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 20:15
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
LaFuriaRoja_FanЯ вот попроще придумал Код: plsql 1. 2. 3. "Проще" не всегда проще... И не всегда правильно... LaFuriaRoja_FanВроде должно правильно все быть? Если сравнить с тем, что ты писал ранее - твой запрос полная ерунда. Это Код: sql 1. ну просто перл! А гда работа с датами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2011, 21:52
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
ТС нужно разбираться, что такое нормализация. Я так понял, он не в курсе. PS. А то потом с одной стороны начинаются сказки, что то, какое каше особенное до такой степени, что не нужно понимать теорию реляционных баз данных, а с другой стороны начинаются вопли, про косоруких программеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.12.2011, 14:34
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
С вашей структурой данных думаю можно выбрать таким образом: Select ... from Table where Статус in ('Отослано', 'Необработано') group by №заказа having %ID = min(%ID) Но это будет работать только в случае, если у вас поступления по порядку в базу заносятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.12.2011, 14:42
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
D_De1mosС вашей структурой данных думаю можно выбрать таким образом: Код: sql 1. А даты где? Закладываться на ИД дело не благодарное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.12.2011, 14:44
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
Вот так тогда уже... Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.12.2011, 14:47
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
krvsa, работа с датами в том формате, как они указаны в примере (я так подозреваю, что это просто строки) не прокатит. В случае, если там используется %Date или %TimeStamp - то достаточно переделать блок having ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.12.2011, 15:43
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
D_De1mosя так подозреваю, что это просто строки Ну строки это не даты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2011, 06:49
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
Ну не все даты - строки, например %Date :) Согласен, что %TimeStamp хранится в виде строки, но строки определенного формата, который позволяет корректно сортировать даты между собой, а вот формат ДД.ММ из примера нормально не отсортируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2011, 08:54
|
|||
|---|---|---|---|
Запрос с отсечением ненужных данных |
|||
|
#18+
D_De1mos , в таком случае не понятны твои сомнения в сообщении выше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=39&tablet=1&tid=1557579]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 486ms |

| 0 / 0 |
