Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
Доброго времени суток,друзья!Я сделал БД,но так,как это мое первое творение,то у меня есть ряд косяков:
1.Мне нужно создать ф-ю bestmanager_id,которая бы выводила мне идшник менеджера,который продал больше всего товара.
2.создать ф-ю bestmanager_table,которая бы использовала bestmanager_id и выводила имя и количество проданного товара.

Вот ссылка в которой лежит образ БД и файл с описанием БД : http://files.mail.ru/F60E89CF38DB4235B60D72BC29DCAAE1
24 май 13, 17:48    [14346837]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
fuzz
но так,как это мое первое творение,то у меня есть ряд косяков:

И где они ?
24 май 13, 17:49    [14346845]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
ну у меня неправильная функция bestmanager.мне нужно ее переделать,в это как раз и заключается косяк
24 май 13, 17:52    [14346863]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
fuzz
ну у меня неправильная функция bestmanager.мне нужно ее переделать

И как вы попробовали ее переделать ?
С какой проблемой столкнулись ?
24 май 13, 17:53    [14346869]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
ну я столкнулся с проблемой создания функции,которая бы возвращала значение id
24 май 13, 17:54    [14346876]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
fuzz
ну я столкнулся с проблемой создания функции,которая бы возвращала значение id

Какую серверную ошибку вы получили ?
24 май 13, 17:55    [14346880]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Гость333
Member

Откуда:
Сообщений: 3683
fuzz
ну я столкнулся с проблемой создания функции,которая бы возвращала значение id

ну давайте сюда текст вашей функции
24 май 13, 17:56    [14346885]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION bestmanager_id 
()
	
RETURNS Idmanager, ,int
AS
BEGIN
	
	
	SELECT count(s.idsale)
    from sale s
     on  m.idmanager=s.idmanager
     group by s.[idsale]
      
	

END
GO
24 май 13, 18:07    [14346931]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
fuzz,
https://www.sql.ru/faq/faq_topic.aspx?fid=13
24 май 13, 18:10    [14346943]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
я знаю,что RTFM.но мне не совсем понятно
24 май 13, 18:17    [14346977]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Гость333
Member

Откуда:
Сообщений: 3683
fuzz,

вот вам шаблон для вашей функции
CREATE FUNCTION bestmanager_id ()
RETURNS int
AS
BEGIN
	DECLARE @Result int
	
	SELECT @Result = <Запрос, вычисляющий нужное значение>
	
	RETURN @Result
END
GO
24 май 13, 18:22    [14347003]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
fuzz
я знаю,что RTFM.но мне не совсем понятно
Вы это все для себя делаете, чтобы научиться
или Вас наняли/попросили/заставили срочно какую-то работу сделать?

Если первое, то изучать синтаксис, без этого никак
Если второе то https://www.sql.ru/forum/job
24 май 13, 18:24    [14347015]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
Гость 333 спасибо,а как вызвать скалярную функцию?
24 май 13, 18:35    [14347047]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
USE [Components magazine]
GO
/****** Объект:  UserDefinedFunction [dbo].[bestmanager_id]    Дата сценария: 05/24/2013 18:39:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[bestmanager_id] ()
RETURNS int
AS
BEGIN
	DECLARE @bestid int
	
	SELECT @bestid  = (s.idsale) from  manager m inner join sale s on m.idmanager=s.idmanager group by s.idsale 
	
RETURN @bestid
END
24 май 13, 18:42    [14347084]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Гость333
Member

Откуда:
Сообщений: 3683
fuzz,

Например,
SELECT dbo.bestmanager_id ()
24 май 13, 18:42    [14347091]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
спасибо я уже разобрался,тольно не могу разобраться с функцией непосредственно.она выводит у меня значение 13.это сумма всех заказов,которые продали менеджеры.а как мне выбрать максимальный?
24 май 13, 18:47    [14347113]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
bestmanager_id я сделал.помогите пожалуйста как использовать скалярную функцию bestmanager_id,чтобы сделать bestmanager_table,где по этому id будет искать фамилию.я просто не пойму как вставить переменную из скалярной ф-й
24 май 13, 21:02    [14347549]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
fuzz
тольно не могу разобраться с функцией непосредственно.она выводит у меня значение 13.это сумма всех заказов,которые продали менеджеры.а как мне выбрать максимальный?

Выводит не функция, а запрос в ее теле
Напишите правильный запрос и получите правильный результат
24 май 13, 22:57    [14347912]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
fuzz
bestmanager_id я сделал.помогите пожалуйста как использовать скалярную функцию bestmanager_id,чтобы сделать bestmanager_table,где по этому id будет искать фамилию.я просто не пойму как вставить переменную из скалярной ф-й

select dbo.bestmanager_id (id) from bestmanager_table
24 май 13, 22:58    [14347917]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Гость333
Member

Откуда:
Сообщений: 3683
fuzz
	SELECT @bestid  = (s.idsale) from  manager m inner join sale s on m.idmanager=s.idmanager group by s.idsale 

Вот этот запрос считает сумму всех заказов?! Никогда бы не подумал.
24 май 13, 23:18    [14348019]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
не сумму всех заказов.а количество
25 май 13, 10:55    [14348640]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
по поводу bestmanager_table мне нужно создать эту таблицу.чтобы в ней я брал bestmanager_id и по нему искал менеджера в таблице managers и выводил его имя.
25 май 13, 10:57    [14348644]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
Glory
Member

Откуда:
Сообщений: 104760
fuzz
по поводу bestmanager_table мне нужно создать эту таблицу.чтобы в ней я брал bestmanager_id и по нему искал менеджера в таблице managers и выводил его имя.

Ну так создайте ее - в чем проблема.
Такое впечатление, что вы српашиваете разрешение на каждое свое действие
25 май 13, 12:09    [14348727]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
fuzz
Member

Откуда:
Сообщений: 112
ну так в этом и проблема.я не знаю как передать значение из скалярной функции bestmanager_id при создании функции bestmanager_table,которая использует это значение и выводит имя менеджера и количество его заказов
25 май 13, 15:48    [14349098]     Ответить | Цитировать Сообщить модератору
 Re: Правка БД в MS SQL 2005  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31431
fuzz
ну так в этом и проблема.я не знаю как передать значение из скалярной функции bestmanager_id при создании функции bestmanager_table,которая использует это значение и выводит имя менеджера и количество его заказов
Для создания таблицы нужно выполнить команду CREATE TABLE

bestmanager_table - это же таблица, а не функция?
25 май 13, 19:15    [14349481]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить