Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Реализация динамической "ленты времени"  [new]
SV056
Member

Откуда:
Сообщений: 9
Коллеги, прошу подсказать возможна ли реализация следующего механизма динамически средствами MS SQL:

Есть массив договоров клиентов с датами начала и окончания (строки). Соответственно есть минимальное и максимальное значение даты начала и даты окончания действия договора (некий временной отрезок)
Необходимо реализовать динамическое создание N колонок во временной таблице (по числу месяцев между вышеуказанными датами началами и окончания). Т.е количество строк известно на момент старта запроса, а количество столбцов необходимо вычислить и динамически создать.

Столбцы необходимы для того чтобы посчитать реализацию по каждому договору за каждый месяц временного промежутка. Хотелось бы найти наиболее изящный способ решения. На ум приходит мысль только вариант с динамическим SQL, или создание таблицы с заранее завышенным кол-вом столбцов, что не есть хорошо и может привести к серьезным траблам в будущем. Возможно не вижу других более актуальных и правильных путей решения.

Буксую. Прошу вашей помощи.
22 май 14, 22:47    [16058440]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
Изящный вариант -- это два поля: номер месяца и ваше значение.
22 май 14, 23:00    [16058486]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
SV056
Столбцы необходимы для того чтобы посчитать реализацию по каждому договору за каждый месяц временного промежутка
Для этого столбцы не нужны.

Другое дело, если вы хотите таким макаром отобразить на клиенте.
Но и для этого динамические столбцы не нужны, этим должен заниматься клиентское приложение/среда.
22 май 14, 23:06    [16058515]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
SV056
Member

Откуда:
Сообщений: 9
Гавриленко Сергей Алексеевич
Изящный вариант -- это два поля: номер месяца и ваше значение.


Согласен, но тогда перед выдачей результата пользователю все равно придется "конвертить" эту таблицу из "вертикального" в "горизонтальный" вариант.

Наверное надо поспать) и утром все станет намного очевиднее)))
22 май 14, 23:11    [16058534]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
SV056
Member

Откуда:
Сообщений: 9
Mnior
SV056
Столбцы необходимы для того чтобы посчитать реализацию по каждому договору за каждый месяц временного промежутка
Для этого столбцы не нужны.

Другое дело, если вы хотите таким макаром отобразить на клиенте.
Но и для этого динамические столбцы не нужны, этим должен заниматься клиентское приложение/среда.


Именно этого и хотел, аналогичные задачи уже решал на стороне клиента, а тут что-то кольнуло а нельзя ли это сделать "красиво" на стороне сервера)
22 май 14, 23:14    [16058547]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
vikkiv
Member

Откуда: London
Сообщений: 2711
SV056, Можно и на стороне сервера, к примеру вспомогательными (бесплатными) средствами самого-же MSSQL, например SSRS - интерактивно и прекрасно делает PIVOTы для выгрузки в разные форматы (Excel/PDF/Word), тут и тема отдельная есть для отчётных систем.
22 май 14, 23:53    [16058694]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
vikkiv
вспомогательными (бесплатными) средствами самого-же MSSQL, например SSRS
Дополнительным сервисом который поставляется не во всех редакциях?
Это как сказать решать арифметические выражения только Электроникой МК-61, а другой калькулятор, компьютер, карандашом на буманге - не не слышал.
И только ради этого заводить этот комбайн? Вы ещё скажите мысли читает и сам всё в себе настраивает.
Тем более что ТС сказал, что уже имеет всё что нужно.
23 май 14, 09:34    [16059427]     Ответить | Цитировать Сообщить модератору
 Re: Реализация динамической "ленты времени"  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Рассчитывайте реализацию ежемесячно и накапливайте результаты. Не откладывайте "на потом".
23 май 14, 12:17    [16060620]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить