PDA

Показать полную графическую версию : Использование нескольких запросов в 1 отчёте


Darkvar
05-10-2010, 18:17
Доброго времени суток уважаемые.

Проблема такова: Access. Необходимо в 1 отчёт запихнуть результаты нескольких запросов. Запросы осуществляются к одной и той же таблице и при указании нескольких запросов в качестве "источника данных" для отчёта Access пишет "Выбраны поля из источников данных, к которым не удалось подключиться. Возможно выбраны, поля из таблицы и из запроса, основанного на этой таблице". Но я-то выбираю поля из только запросов, основанных на одной и той же таблице.

Подскажите пожалуйста возможные варианты решения проблемы.

Delirium
06-10-2010, 01:18
Запросы возвращают множество значений или же по одному? Можно попробовать сделать еще один запрос, который будет включать в себя все нужные результаты. Не видя примерного желаемого результата и результата вывода запросов, тяжело думать, что можно придумать.

Darkvar
06-10-2010, 11:11
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;
В результате получаем то, что нужно.

Darkvar
07-10-2010, 10:41
Delirium, Спасибо большое за совет. Пытался сделать это же, но через конструктор запросов, но Access не давал использовать 2 запроса в качестве источника данных.

Delirium
07-10-2010, 17:22
такие вещи всегда проще писать в режиме кода SQL, а то запросник Access часто не понимает, чего же от него хотят :)

Darkvar
07-10-2010, 17:59
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