На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS

Дорогие друзья! Поздравляем вас с Новым 2018 годом!

Всем удачи, успеха и благополучия!
В новом году ожидаем новых рекордов при подсчёте количества ёлочек на экране ;)


msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Pr0[)!9Y, Akina, JoeUser
Страницы: (7) « Первая ... 5 6 [7]  все  ( Перейти к последнему сообщению )  
> Помогите с запросом
    Вот полный текст запроса:
    ExpandedWrap disabled
      use PJM10
      declare @d1 date
      declare @d2 date
      set @d1='01.01.2017'
      set @d2=GETDATE()+1
       
      Select query1.Проект, query1.[руководитель проекта], round(Query2.Время,2) as Время, Round(Query3.Время_не_рук,2) as "Время не руководителя", round(query1.Сумма/Query2.Время,2)  as "Стоимость часа 5\2"
      from
      (SELECT  Project.FileAs as Проект, Employee.FileAs as "руководитель проекта", sum(PaymentDetail.Value) AS Сумма
      FROM         project
                   left JOIN Invoice ON   Project.ID = Invoice.ProjectID
                   left JOIN PaymentDetail ON PaymentDetail.InvoiceID = Invoice.ID
                   left JOIN Payment ON PaymentDetail.PaymentID = Payment.ID
                   left JOIN Employee on Project.ProjectManagerEmployeeID=Employee.ID
      WHERE    (Payment.FileAs NOT LIKE N'%-1%') AND (Payment.FileAs NOT LIKE N'%-3%') AND Project.Date >=@d1 and  Project.Date< @d2
      Group by  Project.FileAs,Employee.FileAs) as Query1,
       
      (SELECT  Project.FileAs as Проект, CAST(SUM(TimeEntry.Duration) AS FLOAT)/60 AS Время
      FROM         project
                   left JOIN  TimeEntry ON   (Project.ID = TimeEntry.ProjectID)
      WHERE  Project.Date >=@d1 and  Project.Date< @d2
      Group by  Project.FileAs) as Query2,
       
       
      (SELECT  Project.FileAs as Проект, CAST(SUM(TimeEntry.Duration) AS FLOAT)/60 AS Время_не_рук
      FROM         project
                   left JOIN  TimeEntry ON   (Project.ID = TimeEntry.ProjectID) and TimeEntry.EmployeeID<>Project.ProjectManagerEmployeeID
      WHERE  Project.Date >=@d1 and  Project.Date< @d2
      Group by  Project.FileAs) as Query3
       
      where Query1.Проект=Query2.Проект=Query3.Проект
      Order by query1.Проект

    на это ругается where Query1.Проект=Query2.Проект=Query3.Проект а именно на второе равно(Неправильный синтаксис около конструкции "=".)
    "Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
      По-моему, два последних подзапроса можно собрать в один. Будет что-то вроде

      ExpandedWrap disabled
        SELECT Project.FileAs as Проект
             , CAST(SUM(TimeEntry.Duration) AS FLOAT)/60 AS Время
             , CAST(SUM(CASE WHEN TimeEntry.EmployeeID<>Project.ProjectManagerEmployeeID
                             THEN TimeEntry.Duration
                             ELSE 0 END) AS FLOAT)/60 AS "Время не руководителя"
        FROM project
        left JOIN  TimeEntry ON Project.ID = TimeEntry.ProjectID
        WHERE  Project.Date >=@d1 and  Project.Date< @d2
        Group by  Project.FileAs
      Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
      Есть претензии ко мне как к участнику? да ради бога.
      Не нравятся мои ответы? не читайте их.
      В общем, берегите себя. Нервные клетки не восстанавливаются.
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script Execution time: 0,0696 ]   [ 15 queries used ]   [ Generated: 16.01.18, 07:28 GMT ]