|
|
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
День добрый, всем участникам форума! Прошу у вас помощи, в sql я дилетант, но тем не менее, возникла необходимость в написании небольшого запроса: Есть таблица из которой мне нужно достать значения на основании некоторых критериев: SELECT A, B, C, D, E FROM Table WHERE A='00' and (C>=? And C<=?) and (B BETWEEN 'RC%' and 'RZ%') and E=? ORDER BY C, B DESC проблема в том что в результате выполнения этого запроса я получаю множество строк с одинаковым значением B, но разными датами C. Что-то вроде этого: A---B---C--------D-----E00 RC 12.11.13 100 0200 RW 11.10.12 50 0200 RC 05.12.13 120 0200 RT 10.02.10 30 0200 RT 14.03.12 100 02 Мне нужна для каждого B только значение С с самой последней датой A---B---C---------D----E00 RC 05.12.13 120 0200 RW 11.10.12 50 0200 RT 14.03.12 100 02 Искал похожие темы на форумах, вроде бы что-то похожее было, пытался прикрутить подзапрос, но видимо мозгов не хватает применить это на своем примере. Буду очень признателен, если кто-то сможет разжевать что именно мне нужно сделать и поможет на моём примере. P.S: В конце концов получилось вот такое "чудо": SELECT B, max(C) FROM Table WHERE A='00' and (C>=? And C<=?) AND (E=?) and B BETWEEN 'RC%' and 'RZ%' GROUP BY B на выходе имею таблицу вида: B----C RC 05.12.13 RW 11.10.12 RT 14.03.12 т.е отображения столбцов A, D, E мне так и не удалось добиться....(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 14:47:33 |
|
||
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
SELECT A, B, max(C), D, E FROM Table WHERE A='00' and (C>=? And C<=?) and (B BETWEEN 'RC%' and 'RZ%') and E=? GROUP BY A, B,D, E ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 15:39:51 |
|
||
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
очень мне не нравится вот это (B BETWEEN 'RC%' and 'RZ%' а вообще какие колонки входят в уникальный ключ? может ты так объяснишь че те надо, по-человечески, а то совсем не понятен замысел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 15:43:10 |
|
||
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
и почему Код: sql 1. а не Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 15:48:13 |
|
||
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 16:01:23 |
|
||
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
ScareCrowSELECT A, B, max(C), D, E FROM Table WHERE A='00' and (C>=? And C<=?) and (B BETWEEN 'RC%' and 'RZ%') and E=? GROUP BY A, B,D, E Это работает, но почему то все-же выдает не все запрашиваемые столбцы, и в каком то странном порядке Спасибо, буду пробовать разбираться! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 16:24:46 |
|
||
|
Выборка из множества по уникальным значениям и датам
|
|||
|---|---|---|---|
|
#18+
bochkov Код: sql 1. 2. 3. 4. ваш вариант не заработал, тоже буду разбираться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2013, 16:41:44 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38490498&tid=1835598]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 194ms |
| total: | 344ms |

| 0 / 0 |
