Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2015, 22:21   #1
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию Построение иерархического отчета через запрос

Всем добрый вечер! Прошу помощи, т.к. сам никак не могу разобраться.
У меня есть таблица Статьи (в логики иерархии с ID родителя), есть таблица данные, в которой данные представлены только по нижнему уровню иерархии. Я хочу сделать запрос, чтобы в таблице были выведены все строки Справочника Статьи и рядом стояли суммы агрегированные по иерархии.
Запрос "Иерархия" я сделал, но он мне выдает только те строки, по которым заведены данные
Файл с простым наглядным примером прилагаю. Помогите, пожалуйста.Пример.rar
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 25.10.2015, 23:09   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
я сделал, но он мне выдает только те строки, по которым заведены данные
А что вы хотите что он показал ? вот это ?
Код:
SELECT Статьи.Статья, Данные.Сумма
FROM Данные RIGHT JOIN Статьи ON Данные.[ID кто] = Статьи.[ID кто];
Изображения
Тип файла: jpg ssss.jpg (20.8 Кб, 59 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 25.10.2015, 23:45   #3
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

Почти. Пример того, что должно быть, я сделал в приложенном файле в таблице "Что хотим Запросом". Т.е. почти то, только не хватает, сумм по Доходам и Расходам из статей нижнего уровня, как в примере.
Пример2.rar
Вложения
Тип файла: rar Пример.rar (24.0 Кб, 8 просмотров)
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 25.10.2015, 23:53   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

примерно так
Вложения
Тип файла: zip Пример25.zip (37.0 Кб, 15 просмотров)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 26.10.2015, 00:06   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

На весу набросал
Код:
SELECT С.Статья,SUM(Данные.Сумма) AS Сумма
  FROM Данные,
    (SELECT [ID кто],[ID кто] AS ID,Статья FROM Статьи WHERE [ID кого]>0
     UNION
     SELECT С1.[ID кто],С2.[ID кто] AS ID,С1.Статья FROM Статьи С1,Статьи С2 WHERE С1.[ID кого]=0 AND С1.[ID кто]=С2.[ID кого]) AS С
  WHERE С.ID=Данные.[ID кто]
  GROUP BY С.[ID кто],С.Статья
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.10.2015, 00:13   #6
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

shanemac51, спасибо! Визуально все именно так, но суть в том, что это должен быть именно Запрос, а не отчет, т.к. мне необходимо к полученным данным подключить Excel.
Аватар, спасибо! Именно то, что нужно. Осталось только разобраться, как это делается, чтобы освоить и перенести на свои данные. А это именно в коде пишется или код сгенерирован конструктором? Т.е. суть вопроса в том, нужно ли мне учить язык запросов или я смогу это воспроизвести конструктором?
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 26.10.2015, 00:16   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Э-э, я там конструктором и мастером не пользуюсь, только ручками запросы, так что на счет воспроизведения не знаю
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.10.2015, 08:51   #8
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Цитата:
Сообщение от IFRSoff Посмотреть сообщение
А это именно в коде пишется или код сгенерирован конструктором?
немного кода не помешает, а даже упростит задачу
Вложения
Тип файла: zip Пример25.zip (42.6 Кб, 14 просмотров)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 26.10.2015, 09:09   #9
IFRSoff
Форумчанин
 
Аватар для IFRSoff
 
Регистрация: 23.02.2009
Сообщений: 306
По умолчанию

Понимаю и полностью согласен, только это чуть сдвинет сроки, т.к. придётся потратить время на обучение. Но я люблю узнавать новое, тем более, что это сократит сроки в будущем
Лень - двигатель прогресса!
IFRSoff вне форума Ответить с цитированием
Старый 26.10.2015, 09:12   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В запросе лучше Данные к подзапросу через LEFT JOIN прицепить, а то статьи без данных в результат не попадут. Да и запрос только для двух уровней иерархии, иначе нужно переделывать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение отчета самостоятельно, указние отступов, размера шрифта. Как? Человек_Борща Общие вопросы Delphi 5 10.03.2013 16:09
Предварительный просмотр отчета через Excel ins813 БД в Delphi 0 07.06.2012 12:25
Заполнение отчета .dot (Word) через Delphi McKaY Помощь студентам 0 27.02.2012 22:36
создание иерархического меню Си jimmywoodes Общие вопросы C/C++ 1 20.02.2010 18:37