powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по T-SQL формирование набора данных
20 сообщений из 20, страница 1 из 1
Вопрос по T-SQL формирование набора данных
    #32041436
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветсвую!

Вопрос такой:
существует БД с огромным (относительно) набором данных. Необходимо написать хранимую процедуру, позволяющую извлекать по переданным параметрам информацию из общего набора данных. Причем набор данных на выходе нельзя фопределить однозначно SELECT-ом так как в процессе обработки проводятся вспомогательные вычисления.

Так вот суть вопроса: А каков же механизм формирования пользовательского набора данных, представляющего из себе не классический SELECT к БД а именно сформированный самостоятельно НД.

Спасибо
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041461
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нда...
временные таблицы?
курсоры??
переменные типа table???
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041464
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pupkin:
Не понял. приведи пример
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041476
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это наверное похоже на вот что:

хочу установить такой автомат по продаже товаров (типа как пепси-колу продают), но чтобы он продавал все, что покупатель захочет, причем заранее не зная, что нужно. -
Хочу рожок мороженого - на тебе мороженое
Хочу вертолет - на тебе вертолет
Хочу красный импульсный высокоточный гиперсимпулятор - на тебе.

Тока как ему сказать "хочу это и это" тоже неизвестно, так как количество входных параметров неопределено.
:)))))))))))))))))))
Нда..................
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041496
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поясняю для особо одаренных:

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

Использование значений лимитов- расчетная величина представляющая из себя вектор A размерности N (как правило Т=30). Каждый элемент данного вектора A расчитывается исходя из :
1. Предыдущий операций
2. Типа кредитного риска который возникает для каждой операции и
3. Срока(ов) каждой операции.

Примерная постановка задачи (абстрактная):
нужно расчитать матрицу[или промежуточный набор данных] R(m,n) где m-кол-во контрагентов n-кол-во дней И вернуть этот промежуточный набор данных


Т.е. необходимо реализовать хранимую процедуру которая:
1. На входе получает ID контрагента и период за который необходимо расчитать кредитные риски.
2. На выходе вернет расчитанную матрицу в виде набора данных.
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041500
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, так мало известных науке способов задать матрицу?
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041513
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос не только в способе задания матрицы, а в способе возврата пользовательского рекордсета.

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

Неплохим вариантом была бы переменная табличного типа, и вот здесь возникают сразу траблы.
Так как я не очень искушен в T-SQL вот и задаю вопрос р том как эта хреновина реализуется в T-SQL
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041530
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какие проблемы с временной таблицей?...
чегойто я не пойму... да хоть сколько народу....
для каждого все равно будет своя таблица....
кстати если скул решит что табличной переменной нуно хранится не в памяти он все равно сольет ее на временную таблицу.....
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041536
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно привести какой-либо адекватный пример объявления табличной переменной. Или линк дайте .........
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041537
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В BOL ищи table data type
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041539
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
declare @mytbl as table( ID int identity, Field1 as varchar( 50 ) not null)
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041544
Почемучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можешь попробовать создать функцию

see BOL "CREATE FUNCTION"

только по моему проблемы будут с тем как обращаться с плученым рекордсетом, так как построить то ты таблицу любой размерности сможешь и вернешь то её красиво, а-ля матрица, а дальше как её интерпретировать то, возможно тебе матрица то и не нужна как таковая :))

а так кстати переменная типа table это всего лишь ссылка на временную талицу.
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041556
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С переменной типа table разобрался ..... но тут же возник встречный гимор:
А как задать переменную типа table с количеством полей равном N?

Т .е. чтобы задать матрицу R(M,N) мне нужно знать кол-во столбцов. (Строки могут меняться и так). Короче, говоря языком реляционной алгебры нужно знать количество атрибутов, а количество кортежей задается в процессе расчета
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041559
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через динамический запрос....
см. EXEC ('script text')
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041570
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. если я правильно понял, я скриптом должен создать еще один скрипт (исходя из значения N для нашей матрицы) и заэкзекьютить его EXEC-ом.......
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041574
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
абсолютно верно.... ;))
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041576
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для таких целей в принципе лучше писать расширенные процедуры.....
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041578
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда в этом случае нельзя делать ни табличные переменные, ни локальные временные таблицы, поскольку они будут видны только внутри EXEC.

Правда может получиться вернуть табличную переменную из sp_executesql. Или через глобальную временную таблицу.
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041591
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше весь текст впихнуть в одну строку....
...
Рейтинг: 0 / 0
Вопрос по T-SQL формирование набора данных
    #32041596
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pupkin
Сведи все в одну таблицу:
id, m-кол-во контрагентов, n-кол-во дней
...
я так понимаю ты это можешь сделать без проблем,
потом формируешь из нее pivot таблицу :

http://www.sqlteam.com/item.asp?ItemID=2955

- в качесте
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по T-SQL формирование набора данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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