powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / работа с подчиненным запросом
25 сообщений из 43, страница 1 из 2
работа с подчиненным запросом
    #32277083
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос на выборку. Работает с 2мя столбцами - цена и количество. По введенной цене суммирует общее количество. Т.е. если цена 150 встречается в таблице 5 раз с разным количеством продаж, то запрос суммирует все количества. Так как запрос подчиненный, то нужно как-то прописать условие, что в случае "если такая цена в таблице не найдена - количество равно нулю".
Как это сделать, не подскажете? А то пока цена есть - все работает нормально, а как-только цены нет - общий запрос перестает работать.
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277087
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Текст запроса в студию. (С) не помню кто.
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277108
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поначалу это говорил Влад Листев, но его убили. Теперь бессменный Леонид Якубович, поле чудес, страна дураков
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277118
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да там и текста-то особого нет, к тому же, если честно, я не знаю, как выцепить текст, поэтому:
выглядит это так (21 кб)
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277135
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открой запрос в режиме конструктора и выбери в левом верхнем углу "Режим SQL" . Появится текст запроса, копируй его ctrl+C и т.д.
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277139
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT plus.PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY]
FROM plus
GROUP BY plus.PRICE
HAVING (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2]));
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277168
RVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:
Код: plaintext
1.
2.
3.
SELECT plus.PRICE, Sum(NZ(plus.QUANTY)) AS [Sum-QUANTY] 
FROM plus 
GROUP BY plus.PRICE 
HAVING (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2]));
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277173
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше
SELECT plus.PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY]
FROM plus
WHERE (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2]))
GROUP BY plus.PRICE
;
(делается повторным выводом поля в конструкторе, выбором флажка "условие" вместо группировки и все)
_______
- т.е. Если с plus.PRICE не нашлось записей, то где-то надо получить 0?

если обязательно вывести и такую запись - то надо пошаманить с источником (сворачиваемых) записей (например пополнив его левым джойном с полным справочником возможных цен). Но, наверное это не нужно. Как стоит задача более общО?
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277178
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 RVI
не-а, не работает :(
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277187
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, сейчас прийдут знатоки SQL и предложат лучший вариант, но можно так:

SELECT TOP 1 PRICE, [Sum-QUANTY] FROM
[
SELECT 1 as qKey, plus.PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY] FROM plus
GROUP BY plus.PRICE
HAVING (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2]))

UNION SELECT 2, [Forms]![просмотр склада]![ПолеСоСписком2], 0 FROM plus

ORDER BY qKey
]. As MuQuery;
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277188
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Предлагаю так:

SELECT [Forms]![просмотр склада]![ПолеСоСписком2] AS PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY]
FROM [select PRICE, QUANTY from plus union select -1, 0 from OneLine]. AS plus
WHERE (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2])) OR (((plus.QUANTY)=0));

Правда, при этом пришлось завести таблицу OneLine с одной записью (названия полей и их значения не важны).

P.S. Это не Листьев и не Якубович, а на нашем форуме кто-то предлагал именно текст запроса в студию.
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277217
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч, тоже не работает :(
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277224
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Владимир Саныч
пишет
"Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос 'select PRICE, QUANTY from plus union select -1, 0 from OneLine'. Проверьте существование таблицы или запроса и правильность имени.
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277227
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В твоем случае по-моему надо поправить Where, иначе, если цена будет найдена, вернется 2 записи. Или вместо "-1" написать Forms!...ПолеСоСписком
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277231
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой.
Предыдущий пост был ВС адресован.
+ к нему. И добавить Group By ...
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277239
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>пишет
"Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос 'select PRICE, QUANTY from plus union select -1, 0 from OneLine'. Проверьте существование таблицы или запроса и правильность имени

А само
select PRICE, QUANTY from plus union select -1, 0 from OneLine
работает?
(если вставить в режим SQL в пустой бланк запроса?)

Если нет - Вы невнимательно читали ВС (17:59) - надо вставить таблицу "OneLine".
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277241
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 assa
само - работает
я догадалась, что нужно создать таблицу OneLine
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277249
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, я не совсем точно объяснила, ЧТО мне нужно.
Попробую еще раз.
У меня есть таблица "plus". В ней есть столбцы PRICE и QUANTY соответственно.
Мне нужно, чтобы запрос, получив из формы цифру, к примеру 150, нашел все вхождения этой самой 150 в столбце PRICE. И просуммировал все QUANTY, которые ей соответствуют. Это мой запрос и так делает.
Загвоздка в том, что пользователь может ввести цифру, которой не будет в столбце PRICE, например - 20. И тогда нужно, чтобы результатом запроса была табличка:

PRICE QUANTY
20 0

Потому что это подчиненный запрос. Их всего три, совершенно однотипных.
А окончательный запрос собирает результаты с этих запросов и считает общее количество окончательно. Вот так:

SELECT [otchet_sum].PRICE AS Выражение1, ([sklad_sum].[Sum-QUANTY]-[plus_sum].[Sum-QUANTY]-[otchet_sum].[Sum-QUANTY]) AS QUANTITY
FROM otchet_sum, plus_sum, sklad_sum
GROUP BY [otchet_sum].PRICE, ([sklad_sum].[Sum-QUANTY]-[plus_sum].[Sum-QUANTY]-[otchet_sum].[Sum-QUANTY]);

И если один из подчиненных запросов не находит нужную цену, а другие находят, то запрос просто не срабатывает :(
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277250
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А "." вы поставили(!!!), А скобки у вас квадратные?
(и то и то - "недокументирванные особости синтаксиса)

...Ну, тогда сохраните "само" (например как plusQ) и вместо скобок и точек киньте это "само" в конструктор вместо plus и повторите Ваш изначальный запрос но уже с plusQ.
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277255
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 assa

сделала, ошибка не появляется, но нужный результат не дает :(
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277258
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 assa
и, кстати, перестал считать даже то, что считал :(
т.е. если вхождение цены в таблице есть
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277262
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select  nz(a.price,[Forms]![просмотр склада]![ПолеСоСписком2]) as price,
nz(qty, 0 )  as Qty
from plus as t
left join
(SELECT price,Sum(Qty) AS Qty
FROM plus
WHERE plus.Price)=[Forms]![просмотр склада]![ПолеСоСписком2]
GROUP BY plus.Price) as a
on t.price=a.price
where a.price is null
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277265
marina_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 (c)VIG
"ошибка синтаксиса в предложении FROM"
:(
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277286
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2VIG:
[ ].
!!!

2 marina_spb
сделайте по простому. Сохраните вложенный. (то что в [].) Стройте на нем обычный. Смотрите за тем, что у Вас получается на каждом этапе.
Вложенный должен отличаться +1 строкой с 0 в QUANTY от
select PRICE, QUANTY from plus
, далее смотрите, как он у вас группируется -просто все делайте в конструкторе, как привыкли, и не будет проблем. ( Визуально я не вижу ошибок у ВС. казалось бы достаточно просто выделить и вставить. )
...
Рейтинг: 0 / 0
работа с подчиненным запросом
    #32277289
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Визуально я не вижу ошибок у ВС
Как я ему писал выше, недостает Group By и запрос вернет 2 записи если найдет цену в таблице...
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / работа с подчиненным запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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