ЗАПРОС MS Access MTD / QTD

#ms-access

#ms-access

Вопрос:

Я получаю еженедельные данные и должен каждую неделю составлять отчет с MTD, QTD И YTD в одной таблице. У меня есть дата начала столбцов (понедельник) и дата окончания (воскресенье), номер месяца, номер недели, год, номер квартала и проданные доллары и проданные единицы каждого продукта. У меня есть следующий запрос, чтобы получить MTD, вдохновленный другим сообщением:

 SELECT b.month AS Month, 
       b.[Vendor Part] AS VendorID, 
      (SELECT sum(a.[Dollars_Sold]) FROM [DATA] AS a 
       WHERE a.Month<=b.Month 
             AND a.Year=b.Year 
             AND a.[Vendor Part]=b.[Vendor Part]) AS MTD_Dollars
FROM DATA AS b
GROUP BY  [Vendor Part], Month, Year
  

Когда я пытаюсь выполнить запрос, появляется следующее диалоговое окно:

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

Часть поставщика — это уникальный идентификатор каждого продукта. Затем, после длительного ожидания, запрос вернет результат только с итогами за каждый месяц.

Пожалуйста, проверьте результаты

Кто-нибудь знает, что не так? Я не хочу, чтобы диалоговое окно было закрыто, я хочу, чтобы запрос мог создавать таблицу с MTD / QTD / YTD каждого продукта.

Этот запрос работает для итогов каждого месяца, но не для каждого продукта в каждом месяце. Пожалуйста, помогите. Спасибо.

Ответ №1:

Вы пропустили запятую:

 SELECT b.month AS Month, 
       b.[Vendor Part] AS VendorID, 

      (SELECT sum(a.[Dollars_Sold]) FROM [DATA] AS a 
       WHERE a.Month<=b.Month 
             AND a.Year=b.Year 
             AND a.[Vendor Part]=b.[Vendor Part]) AS MTD_Dollars,

      (SELECT sum(a.[Dollars_Sold]) FROM DATA AS a 
       WHERE a.Month<=b.Month 
             AND a.Year=b.Year 
             AND a.[Vendor Part]=b.[Vendor Part]) AS MTD_Units

FROM DATA AS b
GROUP BY  b.[Vendor Part], a.Month,a.Year
  

Комментарии:

1. Спасибо, это была опечатка, но это была не моя проблема. Но я допустил ошибку, подумав, что MTD и QTD одинаковы с начала года. При выполнении MTD мне придется агрегировать данные с каждого нового месяца. Я отредактирую этот пост. Спасибо.