SQL - Как выбрать, когда дата является понедельником ИЛИ первой датой в таблице? - PullRequest
0 голосов
/ 25 июля 2011

У меня есть таблица отчетов о продажах (eod_cache). Я пытаюсь получить список каждой недели продаж, начиная с понедельника, ИЛИ, если первая дата продаж не понедельник, а затем добавляю это и в список. Например, если ежедневные продажи начинаются с 20/20/2011 по сегодняшний день, список будет:

7/25/2011
7/20/2011

В настоящее время я получаю только понедельники, и мне интересно, как я могу добавить минимальную / наименьшую дату в свой список возвращаемых дат. Вот мое заявление:

SELECT      DISTINCT date
FROM        eod_cache
WHERE       DAYOFWEEK(date) = 2
ORDER BY    date DESC

1 Ответ

4 голосов
/ 25 июля 2011

Вы можете добавить OR условие к вашим DAYOFWEEK критериям, которое также допускает наименьшую дату.

SELECT      DISTINCT date
FROM        eod_cache
JOIN        user_store_permissions
ON          user_store_permissions.store_id = eod_cache.store_id
WHERE       user_store_permissions.user_id = 32 AND
            (DAYOFWEEK(date) = 2 or date = (select min(date) from eod_cache))
ORDER BY    date DESC

В этом примере я просто использую наименьшую дату в самой таблицеХотя, возможно, вы захотите изменить этот запрос, чтобы использовать инфраструктуру разрешений, но это изменение не требует пояснений.

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