Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2012, 13:34   #1
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию Реализация сложного условия sql

Доброго дня господа. Может это очень нагло выкладывать такой вопрос но я всетаки попробую.
Нужно смастерить довольно сложный (для меня) запрос.
Имеется некоторые даты d1 и d2, и есть поля в Таблице Дата_открытия и Дата_закрытия нужно реализовать следующее условие
Код:
Если Таблица.Дата_открытия > d2 или Таблица.Дата_закрытия<d1
	То вычисления не проводятся, данное поле игнорируется 

Если  Таблица.Дата_открытия > d1 
{
	Если  Таблица. Дата_закрытия <d2
		То проводятся вычисления используя Таблица.Дата_открытия и Таблица. Дата_закрытия
	Если  Таблица. Дата_закрытия >d2
		То проводятся вычисления используя Таблица.Дата_открытия и d2
	Если  Таблица. Дата_закрытия =null
		То проводятся вычисления используя Таблица.Дата_открытия и d2
}

Если  Таблица.Дата_открытия < d1 
{
	Если  Таблица. Дата_закрытия <d2
		То проводятся вычисления используя d1 и Таблица. Дата_закрытия
	Если  Таблица. Дата_закрытия >d2
		То проводятся вычисления используя d1 и d2
	Если  Таблица. Дата_закрытия =null
		То проводятся вычисления используя d1 и Таблица. Дата_закрытия
}
И сразу другая проблема там где у меня написано «Вычисления» я использую вот такой код:
Код:
DECLARE @d1 SMALLDATETIME,  @d2 SMALLDATETIME;
declare @sum_prazd int;
declare @sum_vih int;
set @d1='01.01.2012'
set @d2='31.01.2012'
SELECT @sum_prazd = Count(Cod_prazd) from Prazdniki where Prazdnik BETWEEN @d1 AND @d2
SELECT @sum_vih = Count(Cod_vihodnoi) from Vihodnoi where Data_vihodnoi BETWEEN @d1 AND @d2
SELECT post, ((DATEDIFF(day, @d1, @d2)+1)-@sum_prazd-@sum_vih) as [Рабочии дни] from Vakansii;
Есть ли в SQL что нибудь вроде процедур или функций в которые можно засунуть этот код и чтобы она возвращал значение.
Не прошу выложить весь код, буду очень благодарен если закодите какюнибудь часть а дальше разберусь.
Спасибо.
p.s Запрос должен считать фонд незанятого рабочего времени за указанный промежуток времени
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол

Последний раз редактировалось atenon; 05.08.2012 в 13:40.
atenon вне форума Ответить с цитированием
Старый 05.08.2012, 13:43   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
SELECT  ...,
    CASE WHEN <условие> THEN dbo.MyFunction(<параметры>)
         WHEN <условие> THEN dbo.MyFunction(<параметры>)
         ...
         ELSE NULL END AS CalcPole1,
    ...
  FROM ...
+ CREATE FUNCTION
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.08.2012, 20:20   #3
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Спасибо большое за неоднократную помощь, добил курсовик ))))) можно начинать тестить
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация фильтрации в базе данных SQL в ASP.NET dridnol Помощь студентам 0 22.06.2012 09:20
Составление сложного запроса. Lazio SQL, базы данных 1 16.12.2011 18:48
Создание сложного перекрёстного sql-запроса Galiska БД в Delphi 0 23.05.2010 00:20
Проблема составление сложного SQL запроса Arnezami Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 05.03.2010 19:37