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

start [/forum/topic.php?fid=39&msg=37586305&tid=1557579]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 343ms |

| 0 / 0 |
