Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.11;
Скачать: CL | DM;

Вниз

SQL запрос   Найти похожие ветки 

 
toropoff   (2011-11-22 13:45) [0]

подскажите, как оптимальней составить запрос:

-входящие-
kod        код документа

-сроки-
kod        код документа
kodOtv   код  ответственного
data      срок исполнения (записей\сроков может быть несколько)

-исполнения-
kod         код документа
kodOtv    код  ответственного
data       дата последнего исполнения

например нужно отобрать невыполненные документы на сегодня

пока мысль

select kod входящие v where
exists (select kod исполнения i where (i.kod=v.kod) and

exists (select сроки s where (s.kod = i.kod) and (s.data < текущая дата) and (s.data > i.data) )
)

как-то всё запутано\перегружено
может как-то проще есть вариант?
простите, SQL только изучаю..


 
toropoff   (2011-11-22 13:48) [1]

пропустил ответственного:

select kod входящие v where
exists (select kod исполнения i where (i.kod=v.kod) and

exists (select сроки s where (s.kod = i.kod) and (s.kodOtv = i.kodOtv) and  (s.data < текущая дата) and (s.data > i.data) )
)


 
Dennis I. Komarov ©   (2011-11-22 13:49) [2]

А откуда такие структуры таблиц?


 
clickmaker ©   (2011-11-22 13:52) [3]

select kod from входящие v
inner join исполнения i on v.kod = i.kod
inner join сроки s on v.kod = s.kod and s.data > i.data
where s.data < getdate()


 
toropoff   (2011-11-22 13:56) [4]

clickmaker ©, огромное спасибо!
буду изучать мысль вашу..


 
toropoff   (2011-11-22 14:00) [5]

Dennis I. Komarov ©, может вы предложите другое что?

есть входящие документы.
к ним нужно привязать ответственных и срок (сроки) исполнения. у каждого ответсвенного могут быть разные сроки.

нужно иметь возможность отобрать неисполненные документы, учитывая дату последнего исполнения ответственного


 
Empleado ©   (2011-11-22 14:00) [6]


> буду изучать мысль вашу..

Как-то звучит ругательно :))


 
Anatoly Podgoretsky ©   (2011-11-22 14:06) [7]

> toropoff  (22.11.2011 14:00:05)  [5]

Это MS Project


 
Труп Васи Доброго ©   (2011-11-22 14:19) [8]

Избыточная структура
оставь лучше так (на вскидку)
-сроки-
kod        код документа
kodOtv   код  ответственного
dataS     срок исполнения (для каждого ответственного отдельная запись)
dataI      дата последнего исполнения


 
Dennis I. Komarov ©   (2011-11-22 14:24) [9]


> у каждого ответсвенного могут быть разные сроки.

Это как понимать? Вася может исполнить этот документ до пятницы, а вот Петя уже сегодня?


 
Anatoly Podgoretsky ©   (2011-11-22 14:25) [10]

> Dennis I. Komarov  (22.11.2011 14:24:09)  [9]

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


 
Dennis I. Komarov ©   (2011-11-22 14:28) [11]

Я бы рассмотрел такую сущность как "Документ" со своими св-ми и состояниями


 
Труп Васи Доброго ©   (2011-11-22 14:32) [12]


> Это как понимать?

Это обычно, ты никогда в большой конторе не работал? В резолютивной части пишут:
Начальнику отдела продаж сделать то-то, срок такой-то
Начальнику СМиТ сделать то-то, срок такой-то
Начальнику службы безопасности сделать то-то, срок такой-то
Контроль возложить на заместителя директора.
Так что в одном документе разные задачи, разные исполнители и разные сроки.


 
Труп Васи Доброго ©   (2011-11-22 14:35) [13]


> Я бы рассмотрел такую сущность как "Документ" со своими
> св-ми и состояниями

Возможно что и такой подход будет применим, но "афтар", как обычно, не описывает саму задачу, а просит "отполировать" его собственные размышления на неизвестную нам тему.


 
Dennis I. Komarov ©   (2011-11-22 15:25) [14]


> Это обычно, ты никогда в большой конторе не работал?

ну-ну...

> В резолютивной части пишут:

DocID {Index}
ExecutorID
CreateDateTime
ExecuteDateTame
LastDateTime
RedirectID
RedirectDateTime
...
по необходимости


 
toropoff   (2011-11-22 17:31) [15]

совершенно верно, документ может быть такого содержания:

- Отделу А 25-го числа каждого месяца предоставить то-то.
- отделу A каждую пятницу предоставить сё-то
- Петрову такого-то числа разработать то-то
- Петрову последний день квартала проанализиолвать сё-то

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


 
Dennis I. Komarov ©   (2011-11-22 17:49) [16]

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



Страницы: 1 вся ветка

Текущий архив: 2012.03.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.007 c
2-1322561090
Evgen88
2011-11-29 14:04
2012.03.11
помогите разобраться с TEdit


15-1321220394
KilkennyCat
2011-11-14 01:39
2012.03.11
TCanvas &amp; HTML


2-1322481594
jacksotnik
2011-11-28 15:59
2012.03.11
DBCombobox


15-1321442171
OW
2011-11-16 15:16
2012.03.11
есть ли в природе какой старый FastReport? бесплатный, с сорцами


2-1322581917
toropoff
2011-11-29 19:51
2012.03.11
потоки и ядра