сводный доступ с подзапросом - PullRequest
0 голосов
/ 11 декабря 2018

здесь нужна некоторая помощь ... Мне удается сделать запуск с MS-ACCES запросом, который объединяет подзапрос.

SELECT
    TS3.YearTimeSheet, 
    Ress1.[Complete Name], 
    Rates2.[Applicable Currency], 
    Rates2.[Applicable Rate], 
    TS3.WeekTimeSheet, 
    Sum(TS3.TotalWeek) AS [Total Hrs], 
    Sum([TotalWeek]*[Applicable Rate]*(1+[WAO])) AS [Cost Incl WAO]
FROM 
    (
        [Resources Rates] AS Rates2
        INNER JOIN Resources AS Ress1 ON Rates2.StaffID = Ress1.STAFFID
    ) 
    INNER JOIN TimeSheets AS TS3 ON Ress1.STAFFID = TS3.STAFFID
WHERE Rates2.[Applicable Rate] = (
    SELECT [Resources Rates].[Applicable Rate] 
    FROM [Resources Rates] 
    WHERE  
        [Resources Rates].[StaffID]= [Rates2].[StaffID]
        AND DatePart('yyyy', [Resources Rates].[Starting Date]) = [TS3].[YearTimeSheet] 
        AND NOT DatePart('ww', [Resources Rates].[Starting Date])>=[TS3].WeekTimeSheet 
        AND NOT DatePart('ww', [Resources Rates].[Ending Date])< [TS3].WeekTimeSheet
    )
GROUP BY
    TS3.YearTimeSheet, 
    Ress1.[Complete Name], 
    Rates2.[Applicable Currency], 
    Rates2.[Applicable Rate], 
    TS3.WeekTimeSheet;

К сожалению, при попытке преобразовать его в Pivot ... ошибка!«Изучите основы доступа Microsoft Access». TS3.WeekTimeSheet «исправьте правильное выражение лица».В английском языке Access не распознает TS3.WeekTimeSheet как поле.

Насколько я понимаю, объявление этой переменной находится в конце инструкции и поэтому не может быть использовано раньше?Он работает в обычном подзапросе ... в инструкции TRANSFORM PIVOT.Конечно, неправильный метод ... Пожалуйста, помогите ниже инструкции SQL, однако работает, когда я форсирую критерии со статическими данными.Я делаю конечно что-то не так в структуре с нижеприведенным.Я думал, что ниже следует сделать эту работу.Есть идеи, что я делаю не так?

TRANSFORM Sum(TS3.TotalWeek) AS WeekSum

SELECT TS3.YearTimeSheet,
  Ress1.[Complete Name], 
  RatesBis.[Applicable Currency], 
  RatesBis.[Applicable Rate], 
  Sum(TS3.TotalWeek) AS [Total Hrs], 
  Sum([TotalWeek]*RatesBis.[Applicable Rate]*(1+[WAO])) AS [Cost Incl WAO]

FROM Resources AS Ress1 INNER JOIN TimeSheets AS TS3 ON Ress1.STAFFID = TS3.STAFFID, 
  (
  SELECT [Resources Rates].[Applicable Currency], [Resources Rates].[Applicable Rate] 
  FROM [Resources Rates] 
  WHERE [Resources Rates].[StaffID]=Ress1.STAFFID
   AND NOT DatePart('ww', [Resources Rates].[Starting Date])>= TS3.WeekTimeSheet
   AND NOT DatePart('ww', [Resources Rates].[Ending Date])< TS3.WeekTimeSheet
   ) AS RatesBis

GROUP BY 
  TS3.YearTimeSheet, 
  Ress1.[Complete Name], 
  RatesBis.[Applicable Currency], 
  RatesBis.[Applicable Rate]

PIVOT TS3.WeekTimeSheet;
...