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

Откуда: http://city-afisha.com
Сообщений: 692
Всем привет! Ребят помогите решить ошибку.

Есть функция, внутри курсором вычисляю значение, это значение нужно затем вставить в временную таблицу.

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO

 
CREATE FUNCTION dbo.f_f (@id int )

RETURNS  
@ResultTable TABLE 
(
	Numbb money	 	 
)

AS
BEGIN


declare @value money	 
set @value = 0
 
  
 BEGIN

          ------курсор
          declare  @id_ts int  

          declare na cursor static for

           select s.id_ts from ca s 
           where
            s.id = @id
           

          open na
          fetch next from na into @id_ts

          while @@Fetch_Status=0

          begin  
          --тело курсора

            set @value = @value +  dbo.f_Cho(@id_ts)  
            


          -- конец тела

          fetch next from na into @id_ts

          end


          close na
          deallocate na

          --------------курсор
          ---- конец



 END

 --
 insert into @ResultTable (Numbb) VALUES  (@value)
 
RETURN
END




пишет ошибку: Невозможно выполнить процедуру изменения для "dbo.f_f" из-за несовместимого типа объекта.
1 фев 16, 10:31    [18754743]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sputnick
Невозможно выполнить процедуру изменения для "dbo.f_f" из-за несовместимого типа объекта.

Удалите уже имеющуюся функцию dbo.f_f
1 фев 16, 10:32    [18754751]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
это значение мне потом нужно получить в фастрепорте (net), хочу привести к таблице, так как если возвращать функцией тип money, то фастерпорт дает ошибку - http://joxi.ru/lJ2b538I5Eejm6
1 фев 16, 10:33    [18754757]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
Glory
Sputnick
Невозможно выполнить процедуру изменения для "dbo.f_f" из-за несовместимого типа объекта.

Удалите уже имеющуюся функцию dbo.f_f


блин. Помогло, спасибо.
1 фев 16, 10:34    [18754769]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Что возвращает dbo.f_Cho? Какого типа?
Если MONEY, то
SELECT Numbb=SUM(dbo.f_Cho(id_ts)) FROM ca WHERE id=@id;
и никакого курсора
1 фев 16, 10:40    [18754803]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
iap
Что возвращает dbo.f_Cho? Какого типа?
Если MONEY, то
SELECT Numbb=SUM(dbo.f_Cho(id_ts)) FROM ca WHERE id=@id;
и никакого курсора


у меня тут select s.id_ts from ca s выбирается десяток разных айдишок, поэтому я в курсоре их перебираю.
1 фев 16, 10:43    [18754827]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sputnick
у меня тут select s.id_ts from ca s выбирается десяток разных айдишок, поэтому я в курсоре их перебираю.

Зачем курсором ?
1 фев 16, 10:45    [18754843]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
а никто с фастрепорт.нет не работал в плане подачи с функции значения в money? даже в табличном виде подаю ему (http://joxi.ru/QeAO4DQCDneoro) money, ругается http://joxi.ru/lJ2b538I5Eejm6
1 фев 16, 10:45    [18754844]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
Glory
Sputnick
у меня тут select s.id_ts from ca s выбирается десяток разных айдишок, поэтому я в курсоре их перебираю.

Зачем курсором ?


ну как смог, задачу нужно решить быстро в ущерб корректности.
1 фев 16, 10:46    [18754849]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104751
Sputnick
а никто с фастрепорт.нет не работал в плане подачи с функции значения в money?

С фастрепортом работают в соответствующем форуме
1 фев 16, 10:46    [18754853]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Sputnick
iap
Что возвращает dbo.f_Cho? Какого типа?
Если MONEY, то
SELECT Numbb=SUM(dbo.f_Cho(id_ts)) FROM ca WHERE id=@id;

и никакого курсора


у меня тут select s.id_ts from ca s выбирается десяток разных айдишок, поэтому я в курсоре их перебираю.
А я сколько "разных айдишок" написал?
1 фев 16, 10:55    [18754907]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
iap
Sputnick
пропущено...


у меня тут select s.id_ts from ca s выбирается десяток разных айдишок, поэтому я в курсоре их перебираю.
А я сколько "разных айдишок" написал?


вроде допер, он вызовет dbo.f_Cho(@id_ts) столько раз. сколько там разных айдишек и проссумирует?
Спасибо, будет время перепишу.
1 фев 16, 10:59    [18754926]     Ответить | Цитировать Сообщить модератору
 Re: Вставить результаты вычисления в временную таблицу  [new]
Sputnick
Member

Откуда: http://city-afisha.com
Сообщений: 692
решил, нужно в функции возвращать значение RETURN @value а не таблицу
1 фев 16, 11:05    [18754949]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить