Выбор данных по году, месяцу и неделе из таблицы - PullRequest
1 голос
/ 09 ноября 2011

У меня есть следующие таблицы:

Table: promotion_asset
promotion_id
asset_id

(в акции может быть много активов)

Table: promotion_tracking
id(PK)
asset_id
date_scanned

(таблица регистрации для каждого сканирования ресурса)

Я хочу ПОПРОБОВАТЬ в одном запросе, чтобы иметь возможность определить, сколько раз были отсканированы активы в определенном идентификаторе продвижения: в этом году, в этом месяце и на этой неделе.

Я пробовал многоразличные методы, но не могут найти один запрос, который возвращает правильные результаты.

1 Ответ

1 голос
/ 09 ноября 2011

У меня есть только сервер sql, поэтому я смог проверить это для функций Год и Месяц, посмотрел WeekOfYear для mysql

SELECT pa.promotion_id
   , SUM(CASE
        WHEN YEAR(pt.date_scanned) = YEAR(GETDATE()) THEN 1
        ELSE 0
     END CASE) AS ThisYear
   , SUM(CASE
        WHEN YEAR(pt.date_scanned) = YEAR(GETDATE())
           AND MONTH(pt.date_scanned) = MONTH(GETDATE()) THEN 1
        ELSE 0
     END CASE) AS ThisMonth
   , SUM(CASE
        WHEN WEEKOFYEAR(pt.date_scanned) = WEEKOFYEAR(GETDATE()) THEN 1
        ELSE 0
     END CASE) AS ThisWeek
FROM promotion_tracking AS pt
INNER JOIN promotion_asset AS pa ON pt.asset_id = pa.asset_id
GROUP BY pa.promotion_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...