Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Группировка по дням недели [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...


Наверх

Титульная страница Поиск, карта сайта Написать письмо