Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - хранимые процедуры на sql server management

Ответить
Настройки темы
MSFT SQL Server - хранимые процедуры на sql server management

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Изображения
Тип файла: jpg 2013-12-18_225613.jpg
(105.4 Kb, 4 просмотров)
Просьба подсказать, как выполнить процедуру. Т.е какие действия проделать.
Задание: есть журнал посещения (клиент, дата посещения, обслуживающий мастер), нужно у каждого клиента взять три последние посещения и если мастер один и тот же(3 раза), то вывести этого клиента и "Любимого мастера".

Предполагаю: сгруппировать по клиентам, по дате. Проверять по строке до следующего клиента, как другой клиент, брать 3 предыдущие записи - проверять у них Мастера. И если один - то выводить.

Вот такое дело) Возможно осуществить таким способом? Или подскажите альтернативу?

Прикладываю картинку, для зрительного восприятия задания.

Отправлено: 20:04, 18-12-2013

 

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
use salon_k;
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--CREATE PROCEDURE zapr AS BEGIN
go
--	with tabl as
--(
 select
  KartaKlienta.FIO, Posechenie.DateZapisi, Mastera.Familya,
  row_number() over (partition by KartaKlienta.FIO order by Posechenie.DateZapisi desc) as rn
 from
  KartaKlienta INNER JOIN
                      Posechenie ON KartaKlienta.id_klienta = Posechenie.id_klienta INNER JOIN
                      UslMast ON Posechenie.id_usl_mast = UslMast.id_usl_mast INNER JOIN
                      Mastera ON UslMast.id_mast = Mastera.id_mastera 
--)                      
--select KartaKlienta.FIO, min(Mastera.Familya) as [любимый мастер]
--from  tabl
--where rn <= 3 
--group by  KartaKlienta.FIO
--having  count(*) = 3 and count(distinct Mastera.Familya) = 1;
--END
GO
Нашла функцию - ROW_NUMBER.
Попробовала так. Но работает только открытая часть, если убрать комментарии - "Не удалось привязать составной идентификатор" столбиков из 2 селекта.Может быть не правильно задала?

Отправлено: 05:53, 19-12-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для xctr

Старожил


Сообщения: 200
Благодарности: 16

Профиль | Отправить PM | Цитировать


Если конечно ещё нужно то навскидку:
Код: Выделить весь код
row_number() over (partition by KartaKlienta.FIO order by Posechenie.DateZapisi desc)
вот это поменять на:
Код: Выделить весь код
row_number() over (partition by KartaKlienta.FIO, Mastera.Familya order by Posechenie.DateZapisi desc)
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:35, 15-01-2014 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата s.kseniy@vk:
нужно у каждого клиента взять три последние посещения »
Цитата:
select TOP 3 id_usl_mast from Posechenie order by id desc...
а все остальное можно через select .. case... when (запрос выше = 3) Then чего то end

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 07:44, 28-01-2014 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - хранимые процедуры на sql server management

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - Очень долгое выполнение хранимой процедуры. Sql Server 2008 LilLoco Программирование и базы данных 7 06-02-2013 15:37
MSFT SQL Server - Удобная работа с SSMS (SQL Server Management Studio) AndreiRantsevich Программирование и базы данных 16 14-12-2012 13:32
MSFT SQL Server - [решено] Вопрос по созданию изменению/процедуры в SQL Server 2008 RC2 - не сохраняется проц-ра dark-------13 Программирование и базы данных 1 07-03-2012 12:52
MSFT SQL Server - Подскажите что лучше ставить SQL 2000 или SQL 2005 на Server 2003 ForGroin Программирование и базы данных 6 23-03-2008 20:54
MSFT SQL Server - Бэкапы с помощью SQL Server Management Studio Express DoublE_zone Программирование и базы данных 1 27-09-2007 17:50




 
Переход