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

Откуда:
Сообщений: 97
Как в SQL2000 сделать запрос, типа такого

SELECT kodTovara, funct(kodTovara, Data,...) as sum FROM tabl


Функция (хранимая процедура ?) funct(kodTovara, Data,...) определяет цену по сложному алгоритму,
как ее сделать я знаяю. Вопрос в том , как ее использовать в SELECT.
26 окт 05, 08:48    [2006024]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать запрос Select  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
???
SELECT kodTovara, dbo.funct(kodTovara, Data,...) as sum4 FROM tabl

Если это поле в селекте , т.е. значение функции часто используется то лучше в таблице tabl сделать вычисляемое поле и посадить на него индекс.
26 окт 05, 08:53    [2006043]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать запрос Select  [new]
Timon
Member

Откуда: Dushanbe TJK
Сообщений: 2688
Забыл сказать что такой синтаксис применим только к ФУНКЦИЯМ, но не процедурам.
26 окт 05, 08:54    [2006047]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать запрос Select  [new]
almmag
Member

Откуда:
Сообщений: 97
Приведите подробный пример, пожалуйста, для использования фунции
26 окт 05, 09:03    [2006076]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать запрос Select  [new]
SLight
Member

Откуда:
Сообщений: 56
Делай так:

Функция:
create function dbo.fn_CalulateCost( kodTovara int, Data datetime, ....)
returns numeric(9,2)
as
begin
   declare
      @res numeric(9,2)

   set @res = 10.5
   -- Высчитаешь как надо, потом

  Return (@res)
end
go
В выборке делаешь так:

SELECT 
  kodTovara, 
  dbo.fn_CalulateCost(kodTovara, Data,...) as sum 
FROM 
  tabl

Би хеппи... :))
26 окт 05, 09:04    [2006081]     Ответить | Цитировать Сообщить модератору
 Re: Помогите сделать запрос Select  [new]
almmag
Member

Откуда:
Сообщений: 97
Спасибо - попробую
26 окт 05, 09:27    [2006175]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить