Выбор недель с использованием SQL - PullRequest
0 голосов
/ 12 марта 2011

У меня есть раскрывающийся список с именем «Выберите неделю:», и его значение может иметь 3 недели в качестве значения, то есть текущая неделя, следующая неделя и неделя после этого. Эти значения необходимо обновить в раскрывающемся списке с помощью операторов SQL.

Скажем, например: Сегодня 03/12/2011, затем в раскрывающемся списке параметры должны быть следующими: 03/06/2011 - 03/12/2011 (с воскресенья по субботу) 13/03/2011 - 19.03.2011 (вс до сб) 20.03.2011 - 26.03.2011 (вс до вс)

Я написал небольшую часть кода, используя SELECT Case. Пожалуйста, помогите мне с кодом и правильной логикой. Спасибо заранее за любую помощь:)

 select case when
 to_char(sysdate,'day') = 'saturday' 
 then
 to_char(next_day(sysdate,'sunday')-7,'mm/dd/yyyy') || '-' || to_char
 (next_day(sysdate-1,'saturday'),'mm/dd/yyyy')
 else || '-' || to_char
 (next_day(sysdayte,'saturday'),'mm/dd/yyyy')
 end weeks from dual union .... union

....

Ответы [ 2 ]

1 голос
/ 12 марта 2011

Если это нужно сделать в БД, то ...

Просто показываю код недели. Вы можете извлечь начальную и конечную дату для каждого времени аналогичным образом, но я бы, вероятно, сохранил бы их в локальной db-таблице и выбрал бы их вместо объединения. Например: объявить таблицу @weeks (weekno int, начинается datetime, заканчивается datetime)

объявлять @now datetime; set @now = getdate ();

Declare @previousWeek int; set @previousWeek = datepart (week, (dateadd (week, -1, @now)));

Declare @nextWeek int; set @nextWeek = datepart (week, (dateadd (week, 1, @now)));

Declare @weekNow int; set @weekNow = datepart (week, @now);

выберите @previousWeek WeekNo союз выберите @weekNow союз выберите @ nextWeek

1 голос
/ 12 марта 2011

Мне кажется, что у вас слишком тесная зависимость между SQL и GUI.Вы оказываете слишком большое давление на один плохой запрос SQL.Почему бы вам не использовать SQL только для получения данных из базы данных и оставить всю логику вычислений для реального языка программирования?Это сделает его более читабельным и простым в обслуживании.Этот запрос выглядит безобразно со всеми конкатенациями строк.

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