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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> несколько несвязанных запросов в 1 отчет 
:(
    Опции темы
jaw
  Дата 23.8.2007, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нужно вывести несколько запросов в один отчет. Причем, нельзя их объединить в один запрос (много несоответствующих друг другу полей).
Например: 
запрос1: ФИО, дата начисления, сумма начисления.
запрос2: ФИО, дата платежа, сумма платежа.
зппрос3: ФИО, год начисления, сумма начисления
...
Причем даты начисления и платежа не совпадают. Не совпадают даже количество начислений и платежей (платят в рассрочку за несколько раз)


Можно было бы воспользоваться перекрестными запросами, но тогда нельзя вывести в отчет только одну фамилию (нельзя в условии отбора сделать Like "*" & [ФИО] & "*". Ругается). 

Можно в отчете в список (в источник строк) написать SELECT из другого запроса, но как ему указать условие where (чтоб брал данные именно по этому человеку).
 smile 

PM MAIL   Вверх
Akina
Дата 23.8.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Код

Select fld1, fld2, 0 as fld3, 0 as fld4, 0 as fld5, 0 as fld6
From Table1
Union
Select 0, 0, fld3, fld4, 0, 0
From Table2
Union
Select 0, 0, 0, 0, fld5, fld6
From Table3

Или так:
Код

Select 1 as TabNum, FIO, fld1, fld2, 0 as fld3, 0 as fld4, 0 as fld5, 0 as fld6
From Table1
Union
Select 2, FIO, 0, 0, fld1, fld2, 0, 0
From Table2
Union
Select 3, FIO, 0, 0, 0, 0, fld1, fld2
From Table3

Причем лучше сделать такой ЗАПРОС. И именно его использовать как источник данных отчета


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

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


Новичок



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

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



 smile   smile   smile  Работает! Только вот я думаю, сколько у меня строк получится в итоговом запросе, если у меня 12000 клиентов в базе) Ну по крайней мере это самый приемлимый вариант из всех перепробованных. Лучше ничего, скорей всего, придумать нельзя. Огромное Вам спасибо!
PM MAIL   Вверх
Akina
Дата 23.8.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(jaw @  23.8.2007,  15:53 Найти цитируемый пост)
Лучше ничего, скорей всего, придумать нельзя

Зависит от того, как построен макет запроса... но скорее всего можно. Как обычно, осмысленному ответу мешает дороговизна услуг телепатов.


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

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


Эксперт
***


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

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



Есть такое понятие как подчиненные отчеты. Если необходмо напечатать слабо связанные данные (по полям, но за один перриод или по какой-то другой связи) на одном отчете, то для каждого запроса создется подчиненный отчет (аналогично с подчененной формой) и боросается на главный. При этом их можно связать как и формы.
PM MAIL WWW ICQ Skype GTalk   Вверх
jaw
Дата 27.8.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 23.8.2007,  15:32)
Зависит от того, как построен макет запроса... но скорее всего можно. Как обычно, осмысленному ответу мешает дороговизна услуг телепатов.

У меня все получилось,  скорость выполнения запроса устраивает. В подробном разъяснении задачи, пока нет необходимости. Скажите только напоследок, как в отчет все это впихнуть. Дело в том, что он отображает все пустые поля (с нулями). Некрасиво получается(. А так вроде всю информацию выводит.
PM MAIL   Вверх
jaw
Дата 27.8.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(bopoha @ 24.8.2007,  08:26)
Есть такое понятие как подчиненные отчеты. Если необходмо напечатать слабо связанные данные (по полям, но за один перриод или по какой-то другой связи) на одном отчете, то для каждого запроса создется подчиненный отчет (аналогично с подчененной формой) и боросается на главный. При этом их можно связать как и формы.

Я уже пробовал это вариант. Ж0п@ вышла в том месте, где пришлось для каждого подотчета (а у меня их ~5) вводить условие отбора: Like "*" & [ФИО] & "*". А это не очень удобно.
PM MAIL   Вверх
Akina
Дата 27.8.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(jaw @  27.8.2007,  13:18 Найти цитируемый пост)
В подробном разъяснении задачи, пока нет необходимости. Скажите только напоследок, как в отчет все это впихнуть. Дело в том, что он отображает все пустые поля (с нулями). Некрасиво получается(. 

Вот потому и нужна детализация задачи. Ибо решений несколько, а описывать все - у мну пальцы устанут.


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

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


Новичок



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

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



Цитата(Akina @ 27.8.2007,  13:06)
Вот потому и нужна детализация задачи. Ибо решений несколько, а описывать все - у мну пальцы устанут.

Зачем нужна детализация. Осталось только сформировать красивый отчет...
Ну сами напросились.) Есть база данных на 97-м акцессе, сделанная до меня. В ней почти 50 таблиц и более 100 запросов, поэтому все не расскажешь. В общем:

Есть запрос РАСЧЕТЫ: в нем ФИО, Адрес, [дата начисления], [сумма начисления]. Сумма начисления берется еще из нескольких запросов по жуткой формуле с коэффициентами, лготами и т.д. Поэтому глубже лезть не хочется. Страшно.

Следующий момент:
таблица [таблица1арендатор] с полями [код арендатора],[ФИО]
+
таблица [платежи] c полями [код арендатора],[дата платежа],[сумма платежа]

Со всего этого необходимо: ФИО, Адрес, Дата начисления, сумма начисления, Дата платежа, Сумма платежа. Затем для начислений и платежей сделать группировку по годам (т.е. сколько всего оплачено за 2002, 2003,... год; также с начислением, они начисляют несколько раз в год, т.к. у 1 чел. м.б. несколько договоров). А также [итого начислено] и [итого оплачено]

И еще 2 цифры надо вывести:
[начислено на дату справки]=SUM(начисления за все года, кроме текущего)+SUM(начислени за текущий год)/12*месяц
[сальдо]=[начислено на дату справки]-[Итого оплачено]

Всю эту инфу надо вывести в отчет, покомпактней. И главное чтоб было like "*" [ФИО] "*". Если пользователь ввел "Иванов", то вывелись все Ивановы из БД (каждый на своем листе).

Уф... Описал, подробней некуда (и непонятней тоже). Ну теперь с вас решения)
PM MAIL   Вверх
Akina
Дата 27.8.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



То есть нужно нечто вроде:

Цитата

ФИО   Иванов Иван Иванович
Адрес г. Москва, ул. Мясницкая, д. 25, кв. 48
======================================
Год 2002
======================================
 Начислено                Оплачено
  Дата      Сумма      Дата     Сумма
01.01.02   1000.00
                      10.02.02  500.00
                      01.03.02  200.00
15.05.02   1000.00
                      20.08.02  500.00
                      01.11.02  500.00
======================================
ИТОГО      2000.00             1700.00
======================================
Год 2003
======================================
 Начислено                Оплачено
  Дата      Сумма      Дата     Сумма
                      01.01.03  300.00
05.01.03   1000.00
                      10.02.03  500.00
                      01.03.03  200.00
15.05.03   1000.00
                      20.08.03  500.00
                      01.11.03  800.00
======================================
ИТОГО      2000.00             2300.00
======================================
ВСЕГО      4000.00             4000.00

Так?


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

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


Эксперт
***


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

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



Цитата(jaw @  27.8.2007,  12:37 Найти цитируемый пост)
Я уже пробовал это вариант. Ж0п@ вышла в том месте, где пришлось для каждого подотчета (а у меня их ~5) вводить условие отбора: Like "*" & [ФИО] & "*". А это не очень удобно.


Я же говорил о том, что можно связать главный отчет с подчиненными по полю! Просто добавить на главный отчет данные (только фио) и один раз связать поля (см. вкладку "Данные" элемента управления подчиненного отчета). Быстрее будет, если связывать по числовому полю (например [код арендатора]). 

PM MAIL WWW ICQ Skype GTalk   Вверх
jaw
Дата 28.8.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 27.8.2007,  18:20)
То есть нужно нечто вроде:
...
...
Так?

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

Это сообщение отредактировал(а) Akina - 28.8.2007, 11:31

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  P.gif 31,08 Kb
PM MAIL   Вверх
Akina
Дата 28.8.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Подчиненные отчеты. Связанные. Однозначно. 


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

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


Новичок



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

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



Цитата(bopoha @ 28.8.2007,  00:17)
Цитата(jaw @  27.8.2007,  12:37 Найти цитируемый пост)
Я уже пробовал это вариант. Ж0п@ вышла в том месте, где пришлось для каждого подотчета (а у меня их ~5) вводить условие отбора: Like "*" & [ФИО] & "*". А это не очень удобно.


Я же говорил о том, что можно связать главный отчет с подчиненными по полю! Просто добавить на главный отчет данные (только фио) и один раз связать поля (см. вкладку "Данные" элемента управления подчиненного отчета). Быстрее будет, если связывать по числовому полю (например [код арендатора]).

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

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

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

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


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

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


 




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


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

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