Показать полную графическую версию : Использование нескольких запросов в 1 отчёте
Доброго времени суток уважаемые.
Проблема такова: Access. Необходимо в 1 отчёт запихнуть результаты нескольких запросов. Запросы осуществляются к одной и той же таблице и при указании нескольких запросов в качестве "источника данных" для отчёта Access пишет "Выбраны поля из источников данных, к которым не удалось подключиться. Возможно выбраны, поля из таблицы и из запроса, основанного на этой таблице". Но я-то выбираю поля из только запросов, основанных на одной и той же таблице.
Подскажите пожалуйста возможные варианты решения проблемы.
Delirium
06-10-2010, 01:18
Запросы возвращают множество значений или же по одному? Можно попробовать сделать еще один запрос, который будет включать в себя все нужные результаты. Не видя примерного желаемого результата и результата вывода запросов, тяжело думать, что можно придумать.
Delirium, Запросы возвращают количество записей в таблице, удовлетворяющие определённому условия. Разные запросы - разные условия, но результат всегда один - число записей.
Пример такого запроса:
SELECT Count(Таблица1.[Поле1]) AS Выражение1
FROM Таблица1
WHERE ((Таблица1.[Поле1])="123" Or (Таблица1.[Поле1])="456");
Запрос возвращает результат вида:
Выражение1
<<Число записей удовлетворяющих условию>>
Таких запросов - около 10 штук. И необходимо запихнуть результаты этих запросов в таблицу в отчёте.
Delirium
07-10-2010, 01:00
Ну так а в чем дело то тогда, пишем запрос, собирающий все запросы воедино, примерно так:
SELECT Запрос1.Expr1000, Запрос2.Expr1000, Запрос3.Expr1000
FROM Запрос1, Запрос2, Запрос3;
В результате получаем то, что нужно.
Delirium, Спасибо большое за совет. Пытался сделать это же, но через конструктор запросов, но Access не давал использовать 2 запроса в качестве источника данных.
Delirium
07-10-2010, 17:22
такие вещи всегда проще писать в режиме кода SQL, а то запросник Access часто не понимает, чего же от него хотят :)
Delirium, согласен, но с SQL сталкиваюсь редко и туплю когда нужно реализовать незнакомую мне функцию :) .
Ещё такой вопросик: как можно просуммировать результаты такого "запроса по запросам" ?
SELECT Запрос1.Expr1000, Запрос2.Expr1000, Запрос3.Expr1000
FROM Запрос1, Запрос2, Запрос3;
Т.е. чтоб выводились результаты из Запрос1, Запрос2 и дополнительно выводилась сумма этих результатов. Т.е. если Запрос1 вернул результат "1", а Запрос2 - "2", чтоб выводилась сумма "3".
Не припомню такую функцию в SQL, в голову лезет только промежуточная таблица и SUM по столбцу результатов запросов... :unsure:
Delirium
08-10-2010, 02:02
SELECT Запрос1.Expr1000, Запрос2.Expr1000, (Запрос1.Expr1000 + Запрос2.Expr1000) as СуммаЗапросов12, Запрос3.Exp1000
FROM Запрос1, Запрос2, Запрос3;
Все гораздо проще :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.