|
|
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Никак не могу решить поставленную задачу. Имеет ли она вообще решение? Есть запрос: Код: sql 1. 2. 3. 4. Output - СЕЙЧАС Код: plaintext 1. 2. 3. 4. 5. 6. Output - НАДО Код: plaintext 1. 2. 3. Поясню. У каждого PlanId есть данные "Начало(Start Day/Hour)" и "Конец(End Day/Hour)". Все данные (PlanId, Value, MasterName), как видно из запроса, собираются из разных таблиц. Надо как-то рассортировать полученные данные по MasterName. Чтобы данные, соответствующие Start Day/Hour, шли в один столбец, а данные, соответствующие End Day/Hour - в другой. Надеюсь, понятно. Было бы здорово, если бы знатоки что-нить подсказали! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 18:19:12 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
(В Output BroadCastSectionId, который в запросе, заменен на PlanId для простоты) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 18:21:23 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
Tekatoka, Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 19:15:31 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за ответ! Приблизительно то, что надо (в моем случае пришлось адаптировать под MSSQL, там это звучит как MAX(CASE WHEN StationFields.MasterName = 'Start Day/Hour' THEN TypedFieldValues.Value1 ELSE NULL END) AS time_start) - сработало! А можно под это MasterName в условии (CASE) подставлять переменную? Примерно так: WHEN StationFields.MasterName = @переменная THEN TypedFieldValues.Value1 ELSE NULL END) AS @переменная Дело в том, что в программе таких полей, как "Start Day" или "End Day", может быть больше (в зависимости от того, что выберет пользователь), и все их надо отдельным столбцом выводить. Т.е. в идеале - запросить, какие имеются MasterNames, и для каждого из них в отдельном столбце запросить Value. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 19:54:58 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
Tekatokaпришлось адаптировать под MSSQLТак у вас какая СУБД? мне топик переносить или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 19:56:24 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
Я бы ратовал за использование 2 копий таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 19:57:53 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
Ой, да, "слона-то я и не заметил" )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 19:57:56 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
AkinaЯ бы ратовал за использование 2 копий таблицы А можно подробнее? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 19:58:34 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
TekatokaБольшое спасибо за ответ! Приблизительно то, что надо (в моем случае пришлось адаптировать под MSSQL, там это звучит как MAX(CASE WHEN StationFields.MasterName = 'Start Day/Hour' THEN TypedFieldValues.Value1 ELSE NULL END) AS time_start) - сработало! А можно под это MasterName в условии (CASE) подставлять переменную? Примерно так: WHEN StationFields.MasterName = @переменная THEN TypedFieldValues.Value1 ELSE NULL END) AS @переменная Дело в том, что в программе таких полей, как "Start Day" или "End Day", может быть больше (в зависимости от того, что выберет пользователь), и все их надо отдельным столбцом выводить. Т.е. в идеале - запросить, какие имеются MasterNames, и для каждого из них в отдельном столбце запросить Value.PIVOT если значения MasterNames заранее не известны, то еще и динамический SQL Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 21:21:16 |
|
||
|
Разделить данные в запросе
|
|||
|---|---|---|---|
|
#18+
а, там надо и MAX, и MIN... Сорь, в PIVOT не получится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2013, 21:22:51 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1836195]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 366ms |

| 0 / 0 |
