• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Access 2007

  • Автор темы AlekseyDark
  • Дата начала
A

AlekseyDark

Добрый день.

Возникла проблема с Отчетом в Access 2007.

Есть БД по показаниям электросчетчиков, состоит из таблиц "Адреса", "Данные Счетчиков", "Показания"
Нужно сделать отчет за месяц. Данные счетчика, проедыдущие показания, текущие показания, расход, примечания.
Нужно чтоб в отчете отображались все счетчики внезависимости от того, есть показания или нет( если нет показаний то выводить пустую ячейку)

у меня же получается, что при отсутствии показаний счетчик из отчета выпадает.
 
T

Titan

База тут абсолютно никому не нужна. Главное запрос.
Думаю Вам нужно смотреть в сторону объединений (JOIN/INNER/OUTER).
 
A

AlekseyDark

SELECT DISTINCTROW [Данные счетсика].№, [Данные счетсика].[Заводской номер], [Данные счетсика].Код, [Данные счетсика].Признак, [Данные счетсика].Коэф, [Данные счетсика].Разрядность, [Данные счетсика].Статус, Улица.[Кратко название], [Номера домов].[Имя дома], [Запрос текущих показаний].Тариф, Avg([Запрос предыдущих показаний].Показания) AS [Avg - Запрос предыдущих показаний_Показания], Avg([Запрос текущих показаний].Показания) AS [Avg - Запрос текущих показаний_Показания], [Кратко название] & ", " & [Имя дома] AS [Имя адреса], [Запрос текущих показаний].Примечания, Адрес.Улица, Адрес.Дом, [Запрос текущих показаний].Месяц, [Данные счетсика].[Место установки]
FROM Улица INNER JOIN (([Номера домов] INNER JOIN Адрес ON [Номера домов].Дом = Адрес.Дом) INNER JOIN (([Данные счетсика] INNER JOIN [Запрос текущих показаний] ON [Данные счетсика].№ = [Запрос текущих показаний].№) INNER JOIN [Запрос предыдущих показаний] ON [Данные счетсика].№ = [Запрос предыдущих показаний].№) ON (Адрес.Дом = [Данные счетсика].Дом) AND (Адрес.Улица = [Данные счетсика].Улица)) ON Улица.Улица = Адрес.Улица
GROUP BY [Данные счетсика].№, [Данные счетсика].[Заводской номер], [Данные счетсика].Код, [Данные счетсика].Признак, [Данные счетсика].Коэф, [Данные счетсика].Разрядность, [Данные счетсика].Статус, Улица.[Кратко название], [Номера домов].[Имя дома], [Запрос текущих показаний].Тариф, [Кратко название] & ", " & [Имя дома], [Запрос текущих показаний].Примечания, Адрес.Улица, Адрес.Дом, [Запрос текущих показаний].Месяц, [Данные счетсика].[Место установки], [Запрос предыдущих показаний].Тариф
HAVING ((([Запрос предыдущих показаний].Тариф)=[Запрос текущих показаний.Тариф]))
ORDER BY Адрес.Улица, Адрес.Дом;
 
M

MLogistin

Я думаю нагляднее будет целиком, но тут ограничение для файла 2Мб, а сейчас база весит 92Мб, может на почту отправить?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!