Как получить данные, когда «самый большой день» недели не существует?Как получить «самый большой день» в неделю?
Например, если в моей базе данных нет в течение одной недели (при условии, что суббота и воскресенье не в моей базе данных), я все равно хочу получать данные с четверга. Если оба пятница и четверг не существуют, я хотел бы получить данные из среды и т.д.
Это то, что я в настоящее время (этот код позволяет мне получить в последний день месяца из моей базы данных):
/**Select Last Day Of Month**/
SELECT * FROM [mytable]
WHERE [date] IN (SELECT MAX([date])
FROM [mytable]
GROUP BY MONTH([Date]), YEAR([Date]))
Я также понимаю, что вы можете использовать функцию DATEPART для получения всех данных с определенного дня (например, в пятницу), то, что я не уверен в том, как получить четверг, если пятница не существует. Я ищу, чтобы захватить все данные, которые имеют соответствующие функции, а не одну конкретную неделю. Благодаря!
Как яркий пример: Скажем, у меня есть четыре входных данных в моем database->
1. 2016/8/19 (пт), красный
2. 2016/8/18 (чт), синий
3. 2016/8/11 (чт), красный
4. 2016/8/10 (ср), красный
после того, как запрос выполняется, я хотел бы иметь:
1. 2016/8/19 (Пт), красный
3. 2016/8/11 (Thu), красный
Они выбраны, потому что эти данные являются соответствующими «самыми большими» данными на этой неделе.
Не могли бы вы показать некоторые примеры данных с ожидаемыми результатами – TheGameiswar
я считаю, имеющий календарную таблицу. – jarlh
выберите с max с DATEPART (dw, GETDATE()) и сгруппируйте по DATEPART (wk, DATECOLUMN). Добавьте другие столбцы по мере необходимости на выбор. –