Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Группировка по датам  [new]
Сергей Боев
Member

Откуда:
Сообщений: 11
Есть некий класс статистических таблиц. Например
Дата, Оператор, Инфо
...


Необходимо получить

Оператор, кол-во за Период1, кол-во за Период2, ..., кол-во за ПериодN

Как наиболее красиво это сделать?
4 дек 05, 20:56    [2139736]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
spectre
Member

Откуда: Харьков
Сообщений: 76
Можно например так
PARAMETERS p1 DateTime, p2 DateTime;
SELECT Таблица.Оператор, Count(Таблица.Оператор) AS a1
FROM Таблица
WHERE (((Таблица.Дата) Between [p1] And [p2]))
GROUP BY Таблица.Оператор;
Недостаток - это получение данных только за конкретный период. Т.е. за разные периоды прийдется несколько раз перезапускать запрос с разными параметрами. В общем-то это можно сделать с помощью VBA, добавляя в цикле текущие данные в некоторую таблицу.
Возможно будут и другие предложения.
4 дек 05, 21:12    [2139745]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
spectre
Member

Откуда: Харьков
Сообщений: 76
Если вам нужна только статистика за период, то можете воспользоваться отчетами. Там с помощью мастера выбираете таблицу и необходимые поля, а на этапе, где появится надпись "добавить уровни группировки?", забрасываете туда поле дата (по умолчанию получаете сводку по месяцам).
4 дек 05, 21:29    [2139759]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
Сергей Боев
Member

Откуда:
Сообщений: 11
Это я знаю. Уточню

Необходимо получить

Оператор1, Накладных за год, Накладных за тек.день, СчФ за год, СчФ за день
Оператор2, Накладных за год, Накладных за тек.день, СчФ за год, СчФ за день
...
ОператорN, Накладных за год, Накладных за тек.день, СчФ за год, СчФ за день

Всего , Накладных за год, Накладных за тек.день, СчФ за год, СчФ за день
4 дек 05, 21:29    [2139760]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
Сергей Боев
Member

Откуда:
Сообщений: 11
Предполагается использовать из ASP
4 дек 05, 21:31    [2139761]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
spectre
Member

Откуда: Харьков
Сообщений: 76
Умного в голову ничего не приходит (в очередной раз повторяю, что только учусь...).
Можно некрасиво в несколько запросов.

SELECT Таблица.Оператор, Count(Таблица.Оператор) AS [Количество за год] INTO Table1
FROM Таблица
WHERE (((Таблица.Дата) Between Year(Date())-1 And Date()))
GROUP BY Таблица.Оператор;
SELECT Таблица.Оператор, Count(Таблица.Оператор) AS [Количество за день] INTO Table2
FROM Таблица
WHERE (((Таблица.Дата) Between Date()-1 And Date()))
GROUP BY Таблица.Оператор;
SELECT Table1.Оператор, Table1.[Количество за год], Table2.[Количество за день]
FROM Table1 LEFT JOIN Table2 ON Table1.Оператор=Table2.Оператор;
4 дек 05, 22:20    [2139785]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
spectre
Member

Откуда: Харьков
Сообщений: 76
Эврика!!! Можно и одним запросом
SELECT Таблица.Оператор, Count(Таблица.Оператор) AS [Количество за год], Year(Таблица.Дата) AS Выражение, (SELECT Count(*) FROM Таблица a
WHERE a.Дата Between Date()-1 And Date() and a.Оператор = Таблица.Оператор) AS [Количество за день]
FROM Таблица
WHERE (((Таблица.Дата) Between Year(Date())-1 And Date()))
GROUP BY Таблица.Оператор,Year(Таблица.Дата);
4 дек 05, 22:55    [2139803]     Ответить | Цитировать Сообщить модератору
 Re: Группировка по датам  [new]
Сергей Боев
Member

Откуда:
Сообщений: 11
Истина гдето рядом
5 дек 05, 00:45    [2139858]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить