![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Группировка по дням недели [D5, ACESS 2000]
Koks © (2002-05-16 10:55:00)Уважаемые мастера ! Подскажите...
Подключаюсь к базе Access2000 через ADO. Б вазе есть таблица:
ID Color Claruty Size Price Date
---------------------------------------
Key Int Int Int Float Date
Мне нужно составить аггрегирующий запрос по неделям. (Чтоб с начала года 1,2,3,4......)
Как из даты выципит эту неделю....
Lusha (2002-05-17 11:02:00) [1]Лови... Результат не гарантирован, но вроде что то выдает... :)
function WeekOfYear(ADate : TDateTime) : Integer;
var AYear, AMonth, ADay : Word;
Year1stDate : TDateTime;
begin
DecodeDate(ADate, AYear, AMonth, ADay);
Year1stDate := EncodeDate(AYear, 1, 1);
Result := 7 - DayOfWeek(Year1stDate);
Result := Trunc(ADate) - Trunc(Year1stDate) + 1 - Result;
if (Result mod 7) = 0 then Result := Result div 7 + 1
else Result := Result div 7 + 2;
end;
koks (2002-05-17 10:09:00) [2]2 Lusha Открыл справку по Access и нашел там Format для представления дат... Одна из литер отвечает именно за номер недели... Вот только саму функцию преобразования я не нашел (Справка - полный отстой)...
Спасибо - попробую поколдовать... по-моему здесь есть шанс.
По поводу справки по Aссess - ты еще попробуй найти что-нибудь через помощника.
2 Lusha Я это понимаю... Просто для этого ему понадобится функция DayOfWeek, а он ее писать собрался...
Вот именно - DayOfWeek есть. А мне надо WeekOfYear...
Вот если бы ее можно было бы написать - было бы гораздол проще.
Lusha (2002-05-16 17:13:00) [3]>koks © (16.05.02 16:02)
Открыл справку по Access и нашел там Format для представления дат... Одна из литер отвечает именно за номер недели... Вот только саму функцию преобразования я не нашел (Справка - полный отстой)...
Lusha (2002-05-16 16:48:00) [4]>Johnmen © (16.05.02 16:45)
Я это понимаю... Просто для этого ему понадобится функция DayOfWeek, а он ее писать собрался...
Johnmen (2002-05-16 16:45:00) [5]>Lusha © (16.05.02 16:36)
Автору, как я понял, надо получить номер недели в году по дате...
Lusha (2002-05-16 16:36:00) [6]>koks © (16.05.02 16:02)
Только вот как написать функцию WeekOfDay на Delphi....
Не надо ее писать... Функция DayOfWeek в delphi присутствует...
koks (2002-05-16 16:02:00) [7]Week of Yer в Access 2000 нет... :(
А как ее рассчитать-то. Положим, при вводе для каждой записи будет вычисляться WeekOfYear(Date).
Только вот как написать функцию WeekOfDay на Delphi....
2 Johnmen.... а это как типа....
Lusha (2002-05-16 11:51:00) [8]Посмотрите имеется ли в Access функция форматирования даты или функция возвращающая Week of Year...
Если Access поддерживает выражения в предложении GROUP BY, то Вы спасены...
Johnmen (2002-05-16 11:25:00) [9]Придется извращаться, типа используя UNION...