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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2013, 07:49   #1
Messir_Leonard
 
Регистрация: 31.03.2008
Сообщений: 6
По умолчанию Как составить SQL запрос(запутался совсем)

Даны 3 таблицы с данными:
Claims (обращения от граждан, которые поступили в организацию);
Assignments (поручения по обращениям; по каждому обращению может быть создано одно или несколько поручений);
Employees (работники; обращения приходит на имя определенного работника (адресат) и исполнители поручений также являются работниками).

Надо написать SQL-запрос, который возвращает процент просроченных обращений, зарегистрированных за последние 30 дней, в разрезе адресатов:
имя адресата;
процент просроченных обращений.
Обращение считается просроченным, если у него есть хотя бы 1 поручение, не выполненное к плановой дате.
Заранее благодарен!!!
Примерный алгоритм я понял, а вот с синтаксисом проблема.
Messir_Leonard вне форума Ответить с цитированием
Старый 17.03.2013, 13:24   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Поскольку СУБД не указана, то запрос под MS SQL
Код:
SELECT E1.Name,Count*100.00/CountAll AS Procent
  FROM (
    SELECT E.ID,COUNT(*) AS CountAll,
        SUM(CASE WHEN A.FactDate IS NULL OR A.FactDate>A.PlanDate THEN 1 ELSE 0 END) AS Count
      FROM Employees E,Assignments A,Claims C
      WHERE E.ID=A.PerformerID AND
            A.ClaimID=C.ID AND
            DATEDIFF(day,C.RegDate,GETDATE())<=30
      GROUP BY E.ID) U
    LEFT JOIN Employees E1 ON E1.ID=U.ID
  WHERE U.Count>0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.03.2013, 15:22   #3
Messir_Leonard
 
Регистрация: 31.03.2008
Сообщений: 6
По умолчанию

Большое спасибо !!!
Messir_Leonard вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопросам знатокам и просто любителям, нужно составить не сложный sql запрос modz SQL, базы данных 3 14.08.2013 11:20
Как составить SQL запрос на удаление записей Dux БД в Delphi 2 19.02.2013 23:36
как составить sql запрос для выборки по имени,фамилии и отчеству betirsolt БД в Delphi 8 12.05.2010 22:44
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12