|
|
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Запрос на выборку. Работает с 2мя столбцами - цена и количество. По введенной цене суммирует общее количество. Т.е. если цена 150 встречается в таблице 5 раз с разным количеством продаж, то запрос суммирует все количества. Так как запрос подчиненный, то нужно как-то прописать условие, что в случае "если такая цена в таблице не найдена - количество равно нулю". Как это сделать, не подскажете? А то пока цена есть - все работает нормально, а как-только цены нет - общий запрос перестает работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 16:46 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Текст запроса в студию. (С) не помню кто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 16:48 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Поначалу это говорил Влад Листев, но его убили. Теперь бессменный Леонид Якубович, поле чудес, страна дураков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:07 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
да там и текста-то особого нет, к тому же, если честно, я не знаю, как выцепить текст, поэтому: выглядит это так (21 кб) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:17 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Открой запрос в режиме конструктора и выбери в левом верхнем углу "Режим SQL" . Появится текст запроса, копируй его ctrl+C и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:30 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
SELECT plus.PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY] FROM plus GROUP BY plus.PRICE HAVING (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2])); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:31 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Попробуй так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:48 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Лучше SELECT plus.PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY] FROM plus WHERE (((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2])) GROUP BY plus.PRICE ; (делается повторным выводом поля в конструкторе, выбором флажка "условие" вместо группировки и все) _______ - т.е. Если с plus.PRICE не нашлось записей, то где-то надо получить 0? если обязательно вывести и такую запись - то надо пошаманить с источником (сворачиваемых) записей (например пополнив его левым джойном с полным справочником возможных цен). Но, наверное это не нужно. Как стоит задача более общО? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:52 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2 RVI не-а, не работает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:54 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Возможно, сейчас прийдут знатоки 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:58 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Предлагаю так: 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. Это не Листьев и не Якубович, а на нашем форуме кто-то предлагал именно текст запроса в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 17:59 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч, тоже не работает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:20 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч пишет "Ядро базы данных Microsoft Jet не может найти входную таблицу или запрос 'select PRICE, QUANTY from plus union select -1, 0 from OneLine'. Проверьте существование таблицы или запроса и правильность имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:26 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
В твоем случае по-моему надо поправить Where, иначе, если цена будет найдена, вернется 2 записи. Или вместо "-1" написать Forms!...ПолеСоСписком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:27 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Ой. Предыдущий пост был ВС адресован. + к нему. И добавить Group By ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:31 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
>>пишет "Ядро базы данных 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". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:36 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2 assa само - работает я догадалась, что нужно создать таблицу OneLine ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:39 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Мне кажется, я не совсем точно объяснила, ЧТО мне нужно. Попробую еще раз. У меня есть таблица "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]); И если один из подчиненных запросов не находит нужную цену, а другие находят, то запрос просто не срабатывает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:45 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
А "." вы поставили(!!!), А скобки у вас квадратные? (и то и то - "недокументирванные особости синтаксиса) ...Ну, тогда сохраните "само" (например как plusQ) и вместо скобок и точек киньте это "само" в конструктор вместо plus и повторите Ваш изначальный запрос но уже с plusQ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:45 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2 assa сделала, ошибка не появляется, но нужный результат не дает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:50 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2 assa и, кстати, перестал считать даже то, что считал :( т.е. если вхождение цены в таблице есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:52 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:52 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2 (c)VIG "ошибка синтаксиса в предложении FROM" :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 18:58 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2VIG: [ ]. !!! 2 marina_spb сделайте по простому. Сохраните вложенный. (то что в [].) Стройте на нем обычный. Смотрите за тем, что у Вас получается на каждом этапе. Вложенный должен отличаться +1 строкой с 0 в QUANTY от select PRICE, QUANTY from plus , далее смотрите, как он у вас группируется -просто все делайте в конструкторе, как привыкли, и не будет проблем. ( Визуально я не вижу ошибок у ВС. казалось бы достаточно просто выделить и вставить. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:12 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Визуально я не вижу ошибок у ВС Как я ему писал выше, недостает Group By и запрос вернет 2 записи если найдет цену в таблице... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:18 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
а по поводу постановки задачи - не понятно, зачем вам запросы, возвращающие 1 значение еще и группировать. Вам вполне подойдет обычный запрос Select TOP 1 без группировки но с ф-ями DSum(выражение, набор[, условие]) с тем же Where в условии отбора. А Точнее - вам просто нужно 3 вычисляемых поля обновлять (Recalc) после вставки заданных значений (.AfterUpdate). И все. А в источниках этих полей ставить что-то типа DSum("QUANTY", "plus", "PRICE)=" & me![ПолеСоСписком2]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:27 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2асса Кстати, вот это: "[ ]." к VIG'у отношения не имеет. Там скобка лишняя: WHERE plus.Price) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:31 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2GEO - правда ваша. Недоглядел. TOP 1-? (с нужным порядком выборки) (т.к. 2 marina_spb 2-е записи не нужны) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:33 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
ваша "твоя". Все. Умолкаю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:35 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
У вига ")" лишняя, но все равно (по моему), она должна быть ]. :] (бе-бе-бе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:39 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Так правильно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2 Assa У меня в ХР прекрасно работает и с круглыми скобками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 19:44 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Ну, дык. А вот 97 -ниии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 20:02 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Господа, добрый вечер. Я съездил в гости на празднование Нового года и вернулся. Гляжу - а тут мой запрос вовсю комментируется. То он работает, то он не работает. На всякий случай сообщаю: 1. У меня он работает. Я копировал в форум текст работающего запроса. И дает он то, что нужно. 2. Аксесс у меня 97. 3. Правда, мне было лениво создавать форму, поэтому везде, где у меня написано Forms!тырыпыры, на самом деле в работающем запросе стояла константа 10. Возможно, дело в этом, но странно мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 23:02 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2BC 18:27 и 18:21 - это тебе, за остальное прошу прощения. Блин, дарроги... :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 23:11 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2BC 18:27 и 18:21 - это тебе, за остальное прошу прощения. Блин, дарроги... :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 23:12 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
2BC 18:27 и 18:21 - это тебе, за остальное прошу прощения. Блин, дарроги... :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 23:12 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
На 18:27 - проверено, он возвращает не две записи, а одну. На 18:21 - такого поста не найдено, возможно, он был настолько нецензурен, что его почикал админ. :^) Прощения просить не надо, прощения у нас просят на Йом Кипур (у всех на всякий случай), а это только через неделю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 23:19 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Для забавы попроверял то, что тут совместными усилиями насоветовали: ------- Geo - оригинал не работает совсем. В 97-м работает такой вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. , т.е. без квадратных скобок внутри первых. Т.е. форму "просмотр склада" придется переименовать в "просмотр" или что-то без пробелов. В ХР надо пару "[ ]." заменить на "( )" ------- BC Оригинал работает и в 97-м, и в ХР. ------- RVI, assa Оригинал не работает при отсутствии цены в таблице. ------- VIG Оригинал (последний) работает в XP после замены внутреннего Qty на местное QUANTY. В 97-м кроме того внешние () вложенного селекта надо заменять на "[].", внутренние "[]" убирать. ==== Вот. Эх, дарроги... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2003, 01:33 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Отсюда у меня вопрос: почему акцес (в частности 02-й) так странно работает с [ ]. - то разрешает, то нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2003, 01:39 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
Отсюда у меня вопрос: почему акцес (в частности 02-й) так странно работает с [ ]. - то разрешает, то нет? ============= И вообще. 2 ВС, VIG С Новым Годом!!! :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2003, 01:40 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
автор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)); подкрутка: SELECT [Forms]![просмотр склада]![ПолеСоСписком2] AS PRICE, plus.[Sum-QUANTY] FROM [select PRICE, Sum(plus.QUANTY) AS [Sum-QUANTY] from plus WHERE ((plus.PRICE)=[Forms]![просмотр склада]![ПолеСоСписком2]) UNION select -1, 0 from OneLine]. AS plus; Замечание1: OneLine должна не просто существовать, а иметь записи - хотя бы одну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 03:10 |
|
||
|
работа с подчиненным запросом
|
|||
|---|---|---|---|
|
#18+
опять соврамши - суммирование, конечно, надо оставить где и былО. (; - видать - неймется (; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 03:17 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1677026]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
214ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 584ms |

| 0 / 0 |
