Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Диапазон дат со сравнением результатов 
V
    Опции темы
Gal4onoK_89
Дата 15.9.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



Добрый день, есть проблемка, которую пока решить не смогла  smile , в базе перечислены отказы, которые регистрируются в базе данных по мере их появления, в отчете, должны выводится данные за определенный диапазон дат, например:в одном столбце с 01.09.2008 по 30.09.2008 г., а в соседнем для сравнения так же берутся отказы за этот же период, только 2007 г., 3-ий столбец  - рассчитывается разница между этими двумя столбцами. Должно выглядеть примерно так:


     Подразделение:       2008 г.           2007 г.        +- к 2007 г.    
                 1                        5                    7                      -2
                 2                        2                    4                      -2
                 3                        2                    0                     +2 

Вопрос, как правильно написать запрос, который выводил бы эти данные. Заранее спасибо. Очень жду.

PM MAIL   Вверх
bopoha
Дата 15.9.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



В конструкторе есть специальный тип запросов - перекресный. Мастер вам поможет.
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 15.9.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Строишь первый запрос (скажем Q1) - выводящий сведения за первый период:
Код

Select Подразделение, Count(Отказы) As Отказы
From Таблица 
Where Дата Between DateSerial(2008, МесяцНачалаПериода, ДеньНачалаПериода) AND DateSerial(2008, МесяцКонцаПериода, ДеньКонцаПериода)
Group By Подразделение

Аналогично строишь второй запрос (Q2) за тот же период прошлого года.
Отдельно строишь запрос (Q3), выбирающий список подразделений
Код

Select Подразделение
From Таблица 

И наконец собираешь все это воедино, получая требуемое
Код

Select Q3.Подразделение,
       NZ(Q1.Отказы, 0) As ОтказыТекущегоПериода,
       NZ(Q2.Отказы, 0) As отказыПрошлогоПериода,
       NZ(Q1.Отказы, 0) - NZ(Q2.Отказы, 0) As Изменение
From (
          Q3
Left Join Q1
       On Q3.Подразделение = Q1.Подразделение)
Left Join Q2
       On Q3.Подразделение = Q2.Подразделение


PS. Не собирай это в один запрос - лучше не станет, а хуже стать может. Оставь 4 запроса. Если надо - промежуточные сделай скрытыми.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gal4onoK_89
Дата 16.9.2008, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.2.2008

Репутация: нет
Всего: нет



Доброе утро Akina, огромное Вам спасибо, всё получилось smile.

Добавлено через 33 секунды
 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.