У меня есть интересная и конкретная проблема. Конкретно, потому что я не могу объяснить это просто, но я думаю, что это должно быть разумно легко решить. С учетом сказанного я не могу найти подобный вопрос, потому что я не знаю, как его искать!SQL split eggs в двух корзинах - чередование даты
В одной таблице, среди других столбцов, есть столбец даты с теми же самыми краткими записями, которые повторяются в течение года или около того в определенном шаблоне.
Например:
TermDate
- 2013/07/16
- 2013/07/16
- 2013/07/16
- 2013/07/23
- 2013/07/23
- 2013/07/23
- 2013/07/23
- 2013/07/30
- 2013/07/30
- 2013/07/30
- 2013/07/30 ...
(каждый Вторник)
Мне нужно изменить эти даты по понедельникам и средам, так что '2013/07/16' станет «2013/07/15», '2013/07/23' будет тогда '' 2013/07/17 '', и '2013/07/30' будет следующим первым в наличии в понедельник - '2013/07/22' и т. Д.
Вы видите, что я имею в виду? Очевидно, для этого мне понадобился бы оператор CASE, но есть ли у кого-нибудь идея, как именно написать его?
Спасибо!
Я использую MS SQL SERVER, кстати!
Вы спрашиваете, для перевода, округляется даты * вниз * к предыдущему понедельник или в среду, что наступит Скорейшее? 'Monday => Оставайтесь на месте. Вт => Понедельник. Weds => Оставайтесь такими же. Чт-воскресенье => Среда. Итак, все три записи 16 июня ВСЕ стали 15 июля? *** (Также, это MySQL, MS SQL Server, SQLite и т. Д.) *** – MatBailie
Или, может быть, нет. Вы хотите перенести все записи с первой датой и округлите их до предыдущего понедельника или среды (которая станет * базовой датой * для последующих вычислений). Следующая группа записей с той же датой затем отображается в понедельник или среду сразу после * базовой даты *? А следующая группа или записи с той же картой даты со вторым понедельником или средой сразу после * базовой даты *? – MatBailie
На этот раз все правильно! Я использую MS SQL, извините, я забыл добавить эту информацию! – gazdac