powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вычисляемое ИМЯ поля
7 сообщений из 7, страница 1 из 1
вычисляемое ИМЯ поля
    #35112252
alexale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, прошу помочь советами по следующей проблеме в 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 ...
...
Рейтинг: 0 / 0
вычисляемое ИМЯ поля
    #35112287
Yakida_sql77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Select *,ДОХОД*АВГУСТ from tbl where avgust union all
Select *,ДОХОД*АВГУСТ from tbl where yanvar
...
Рейтинг: 0 / 0
вычисляемое ИМЯ поля
    #35112809
alexale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Yakida_sql77
...
Рейтинг: 0 / 0
вычисляемое ИМЯ поля
    #35114066
Так_забежал_просто
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, если разбить таблицу на две (значения в колонках "январь" - "август" просятся наружу, в колонки "месяц"-"процент"). Если оставить так и похожие селекты будут встречаться неоднократно - ну, можно макропроцессором пользоваться... Хотя криво как-то.
...
Рейтинг: 0 / 0
вычисляемое ИМЯ поля
    #35114886
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в MSSQL 2k5 есть UNPIVOT - тоже может помочь
...
Рейтинг: 0 / 0
вычисляемое ИМЯ поля
    #35115229
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы нормализовал эту табличку для начала...
...
Рейтинг: 0 / 0
вычисляемое ИМЯ поля
    #35115325
alexale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ-бы нормализовал эту табличку для начала...

Путем разбиения на 2 таблицы? (одна, с константами, содержащая 2 поля <месяц>, <%бонуса> и 12 записей, а другая - с ежемесячными значениями и ссылками на первую)?

P.S. Спасибо ВСЕМ за участие
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вычисляемое ИМЯ поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]