powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перекрестный запрос с условием (criteria)
25 сообщений из 49, страница 1 из 2
перекрестный запрос с условием (criteria)
    #32540265
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет, господа
такой вопросец:

почему обычный запрос с условием выборки (ну типа штука в квадратных скобках 8)) нормально выполняется, а перекрестный запрос с условием не выполняется?

пишет, что типа ядро Микрософт Джет таких штук не знает и все такое... 8((((
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540275
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но это цветочки
а проблема у меня такая:

есть таблицы Отели, Люди и ТипыЛюдей (дите-не дите)
в отели приезжают люди и надо знать их кол-во по каждому отелю
хочу сделать такой запрос:

каждому отелю соответствует кол-во людей, приехавших в него
каждому отелю соответствует кол-во взрослых, приехавших в него
каждому отелю соответствует кол-во детей, приехавших в него

пока что справился только с первой задачей
помогите плз справиться с остальными
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540289
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
справился, выбрав функцию Count из выпадающего списка
а вот с остальным не понимаю
видимо, что-то ручками надо писать....
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540292
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу ручками вот так:

Expr1: (select [Paxes.paxName] from Paxes where ([Paxes.paxType]=1))

но не работает
говорит, что, "данный подчиненный запрос должен выдавать не больше одной записи"
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540294
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего, что я тут сам с собой? 80
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540303
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плиз хелп/помогите, кто может
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540315
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот сейчас некто Саныч уснет и накроется моя база медным тазиком....
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540320
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну видел я этот вопрос... Вопрос сложный. С ходу не решается. Я и так один сижу и отвечаю пяти человекам одновременно. И при этом, как справедливо было замечено, хочу спать...
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540324
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно...
что поделать
с нами, чайниками стоеросовыми, тяжело, понимаю 8)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540336
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура таблиц предположительно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Отели.НазваниеОтеля, Count(Люди.Люди) AS Count_Люди,
(SELECT Count(Люди.IdОтель) AS Count_IdОтель1
FROM Люди
WHERE (((Люди.IdОтель)=Отели.IdОтель) AND ((Люди.idТип)= 1 ))) AS CountВзрослые, 
(SELECT Count(Люди.IdОтель) AS Count_IdОтель2
FROM Люди
WHERE (((Люди.IdОтель)=Отели.IdОтель) AND ((Люди.idТип)= 2 ))) AS CountДети
FROM Люди INNER JOIN Отели ON Люди.IdОтель = Отели.IdОтель
GROUP BY Отели.IdОтель, Отели.НазваниеОтеля;
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540338
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ого

плохо я пока что в логике мыслю
в микрософтовских подачках в виде выпадающих списков - гораздо лучше

спасибо, Александр
но, похоже, разобраться в вашем тексте мне не под силу

то, что вы написали, - это один запрос или несколько?
и если один, то какой именно?
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540339
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, это несколько в одном....
но как...?
моя голова сейчас сплавится
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540342
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, по шагам (как бы попроще)
имеем
таблицу Отели - IdОтель,НазваниеОтеля
Люди - Люди,IdОтель,idТип
ТипыЛюдей не берем, для примера не очень нужна.

Делаем в конструкторе запрос типа
SELECT Count(Люди.IdОтель) AS Count_IdОтель1
FROM Люди
WHERE (((Люди.IdОтель)=1) AND ((Люди.idТип)=1)))

Делаем запрос с группировкой
SELECT Отели.НазваниеОтеля, Count(Люди.Люди) AS Count_Люди
FROM Люди INNER JOIN Отели ON Люди.IdОтель = Отели.IdОтель
GROUP BY Отели.IdОтель, Отели.НазваниеОтеля;

Первый запрос - переключаемся в режим SQL, копируем его (кроме закрывающей точки с запятой)
во втором (в режиме SQL)
после AS Count_Люди пищем - ,() AS CountВзрослые. в скобочки вставляем первый запрос, заменяем 1 в (((Люди.IdОтель)=1) на Отели.IdОтель. (это можно сделать и в конструкторе для выражения)
Любуемся - работает? и делаем аналогично (Copy-Paste) для детей меняя тип.
Подробнее уже не могу.
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540345
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тааак..
это не совсем то, что мне нужно, но логику я понял
что-то заработало
по крайней мере с синтаксисом разобрался
работает, но выдает пока что сумму всех людей вместо суммы детей....
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540346
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще - я открыл для себя SQL вью!!!!!!!!!!
это победа! как меня достали эти глупые мелкософтовые окошки!!!
теперь хоть весь запрос сразу видно и можно думать разом
вот блин упростители, прости госспади
не зря все Билла пинают
никакой юзабилити 8)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540356
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в итоге манипуляций я получил следующий результат:

либо он выдает сумму детей равной сумме людей в записи (что неверно)
либо он выдает в каждой записи сумму всех детей в отеле (что глупо)
либо ругается "данный подчиненный запрос должен возвращать не более одной записи"
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540358
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно посмотреть текст запроса?
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540359
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А билла не надо так пинать, для чайников - конструктор, для тех, кто посильнее - окно SQL. Есть и то и то. А ведь для многих Ассеss - первые шаги в базах данных, соломки надо же подстелить.
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540360
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все!
уже нельзя! 8)

Александр, вы меня спасли!
вам не приходилось преподавать? 8)))

я очень долго тупил (всю ночь), но под утро до меня доехало, что AND везде нужен, а я его упорно выкидывал 8)

все работает, в итоге отчет дает то, что надо
отель, кол-во людей в нем, кол-во взрослых в нем и кол-во детей в нем

просто у меня есть еще уровни вложенности, я их не упоминал, чтоб вас не запутывать, а вот сам в них запутался 8)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540361
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хех
теперь я готов простить даже Билла 8)

дело в том, что у меня уже был опыт с MySql и я сразу начал искать в Аксессе подобие командной строки

и все-таки я считаю, что даже чайникам надо показывать сразу логику
это гораздо быстрее развивает, чем "ложечкой в ротик, за папу, за маму...."
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540362
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Преподаватель - Владимир Саныч :)
Нет, преподавать не приходилось, просто сам когда-то был таким же. Но дома мне говорят, что у меня лучше не спрашивать и преподаватель из меня никакой :)
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540365
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
близкие никогда не умеют оценить верно
ибо обзор сужен за счет такого механизма как привычка 8)
видно только с дистанции 8))
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540379
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эээээ
рано я обрадовался
запрос работает, а вот отчет на его базе - фиг
отчет пишет "многоуровневое предложение GROUP BY не допускается в подчиненном запросе"
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540401
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ж там в запросе так накручено? Там точно нужна многоуровневая группировка в подчиненных?
Для отчета можно сделать еще так.
Основной - сделан на основе запроса по отелям с группировкой. 2 подчиненных отчетика на одно поле c Count- в источниках селесты с отбором по типам людей, связаны с основной по полю idОтель.
...
Рейтинг: 0 / 0
перекрестный запрос с условием (criteria)
    #32540410
Pretorian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот запрос 8)

SELECT Groupes.groupId, Groupes.groupDateArrive, SamoletsArrive.SamoletArriveName, Aeroports.aeroportName, Kurorts.kurortName, Hotels.hotelName, (select count(Paxes.paxId) from Paxes where (((Paxes.paxType)>2) and (Paxes.Paxgroup)=groupes.groupId)) AS Childov, (select count(Paxes.paxId) from Paxes where (((Paxes.paxType)<=2) and (Paxes.Paxgroup)=groupes.groupId)) AS Adults, Count(Paxes.paxName) AS [Count-paxName]
FROM (Age INNER JOIN paxTypes ON Age.ageId = paxTypes.paxAge) INNER JOIN (Kurorts INNER JOIN (Hotels INNER JOIN ((Aeroports INNER JOIN (SamoletsArrive INNER JOIN Groupes ON SamoletsArrive.SamoletArriveId = Groupes.groupSamoletArrive) ON Aeroports.aeroportId = SamoletsArrive.SamoletArriveAeroport) INNER JOIN Paxes ON Groupes.groupId = Paxes.PaxGroup) ON Hotels.hotelId = Groupes.groupHotelName) ON Kurorts.kurortId = Hotels.hotelKurort) ON paxTypes.paxTypeId = Paxes.paxType
WHERE (((Groupes.groupTransfer) Is Null) AND ((Groupes.groupAnnulee)=0) AND ((Groupes.groupProblemeArrive)=0))
GROUP BY Groupes.groupId, Groupes.groupDateArrive, SamoletsArrive.SamoletArriveName, Aeroports.aeroportName, Kurorts.kurortName, Hotels.hotelName
HAVING (((Groupes.groupDateArrive)=[enter date]))
ORDER BY Kurorts.kurortName DESC , Hotels.hotelName DESC;
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / перекрестный запрос с условием (criteria)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]