
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.02.2008, 01:08
|
|||
|---|---|---|---|
|
|||
вычисляемое ИМЯ поля |
|||
|
#18+
Друзья, прошу помочь советами по следующей проблеме в SQL: есть таблица со следующими полями: МЕСЯЦ ... ДОХОД ... ЯНВАРЬ ... АВГУСТ ... БОНУС ... август ... 7000,0 ... 10% ... 5% ... 350,0 ... Количество полей и их имена постоянны. Для каждой записи таблицы требуется поставить в поле "БОНУС" произведение значений поля ДОХОД и % из поля, имя которого совпадает со значением поля МЕСЯЦ. Известно, что в поле МЕСЯЦ может встретиться только одно из 12 слов, полностью совпадающих с имеющимися одноименными полями таблицы (ЯНВАРЬ ... ДЕКАБРЬ). По-нерусски я бы выразил так: Fields("БОНУС").Value=Fields("ДОХОД").Value*Fields(Fields("МЕСЯЦ").Value).Value. Можно ли в SQL обойтись более короткой конструкцией, нежели эта: SELECT ... , Case When МЕСЯЦ='январь' Then ДОХОД*ЯНВАРЬ Else ... Case When МЕСЯЦ='август' Then ДОХОД*АВГУСТ Else ... End ... End AS БОНУС FROM ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 02:45
|
|||
|---|---|---|---|
|
|||
вычисляемое ИМЯ поля |
|||
|
#18+
Select *,ДОХОД*АВГУСТ from tbl where avgust union all Select *,ДОХОД*АВГУСТ from tbl where yanvar ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 10:43
|
|||
|---|---|---|---|
|
|||
вычисляемое ИМЯ поля |
|||
|
#18+
Спасибо, Yakida_sql77 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 15:26
|
|||
|---|---|---|---|
|
|||
вычисляемое ИМЯ поля |
|||
|
#18+
Можно, если разбить таблицу на две (значения в колонках "январь" - "август" просятся наружу, в колонки "месяц"-"процент"). Если оставить так и похожие селекты будут встречаться неоднократно - ну, можно макропроцессором пользоваться... Хотя криво как-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 18:24
|
|||
|---|---|---|---|
вычисляемое ИМЯ поля |
|||
|
#18+
в MSSQL 2k5 есть UNPIVOT - тоже может помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 21:13
|
|||
|---|---|---|---|
вычисляемое ИМЯ поля |
|||
|
#18+
Я-бы нормализовал эту табличку для начала... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2008, 22:46
|
|||
|---|---|---|---|
|
|||
вычисляемое ИМЯ поля |
|||
|
#18+
maytonЯ-бы нормализовал эту табличку для начала... Путем разбиения на 2 таблицы? (одна, с константами, содержащая 2 поля <месяц>, <%бонуса> и 12 записей, а другая - с ежемесячными значениями и ссылками на первую)? P.S. Спасибо ВСЕМ за участие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1345512]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 366ms |

| 0 / 0 |
