Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать групировку в это запросе / 17 сообщений из 17, страница 1 из 1
17.03.2004, 01:02
    #32444542
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
Кто подскажет... ?

Есть запрос sCall1 = "UPDATE Номенклатура INNER JOIN ТаблицаПоступлений ON Номенклатура.ISO = ТаблицаПоступлений.Наименование SET Номенклатура.Остаток = ТаблицаПоступлений.Количество"

Хочу, чтобы перед апдейтом таблицы "Номенклатура" была произведена сделана групировка "ТаблицыПоступлений" по "ТаблицаПоступлений.Наименование" и расчитана сумма по "ТаблицаПоступлений.Количество"

вобщем куда тут всунть GROUP BY ? :)
...
Рейтинг: 0 / 0
17.03.2004, 01:13
    #32444546
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
/topic/80731
...
Рейтинг: 0 / 0
17.03.2004, 01:17
    #32444547
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
Если советуешь сделать на основе другого запроса ... то тут проблем нет а нельзя все в одной строке ?

Спасибо.
...
Рейтинг: 0 / 0
17.03.2004, 01:19
    #32444548
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
Советую посмотреть ссылку. Там и примеры из одной строки, и стандартная проблема для группировки при обновлении.
...
Рейтинг: 0 / 0
17.03.2004, 16:36
    #32445827
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
В примере приведен результат когда апдейт произоводится по результату селекта из таблицы. А как сделать апдейт в одной таблице по результату группировки в другой таблице ?
...
Рейтинг: 0 / 0
17.03.2004, 17:02
    #32445894
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
легче еще раз вопрос задать чем посмотреть пример и немножко подумать ?

1 шаг делаешь вопрос на группировку в конструкторе
2 шаг входишь в режим конструктора и заключаешь скрипт в скобки - поучается подчиненный запрос

3 шаг перед подчиненным запросом пишешь:
update ИМЯТАБЛИЦЫ set =


4 шаг подчиненный запрос должен возвращать одно значение, одно поле
- оставляешь суммовое поле
- перемещаешь остальные поля группировки в условие WHERE и указвыаешь соответствие их полям таблицы, которую будешь обновлять
...
Рейтинг: 0 / 0
17.03.2004, 17:03
    #32445898
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
читать так:

update ИМЯТАБЛИЦЫ set ИМЯПОЛЯ =
...
Рейтинг: 0 / 0
17.03.2004, 17:09
    #32445916
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
Спасибо Алексей ... буду так делать ... !
...
Рейтинг: 0 / 0
17.03.2004, 17:25
    #32445956
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
sCall1 = "UPDATE Номенклатура SET Номенклатура.Остаток = (SELECT ТаблицаПоступлений.Наименование, Sum(ТаблицаПоступлений.Количество) AS ИтогоКоличество FROM ТаблицаПоступлений GROUP BY ТаблицаПоступлений.Наименование)"

Вот с Where не совсем понял куда его девать, чтобы подчиненный запрос выдавал одно значение ?
...
Рейтинг: 0 / 0
17.03.2004, 17:38
    #32445991
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
UPDATE Номенклатура SET Номенклатура.Остаток = (SELECT Sum(ТаблицаПоступлений.Количество) AS ИтогоКоличество FROM ТаблицаПоступлений where ТаблицаПоступлений.Наименование = Номенклатура.Наименование)
...
Рейтинг: 0 / 0
17.03.2004, 17:49
    #32446014
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
... пишет, что

"В операции должен использоваться обновляемый запрос"
...
Рейтинг: 0 / 0
17.03.2004, 18:03
    #32446039
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
может так получится ?

UPDATE Номенклатура SET Номенклатура.Остаток = dSum("Количество","ТаблицаПоступлений" ; " Наименование = '" & Наименование & "'")
...
Рейтинг: 0 / 0
17.03.2004, 18:04
    #32446040
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
очепятка

UPDATE Номенклатура SET Номенклатура.Остаток = dSum("Количество","ТаблицаПоступлений" , " Наименование = '" & Наименование & "'")
...
Рейтинг: 0 / 0
17.03.2004, 18:48
    #32446109
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
На "Количество" выдает

Expected: End of Statement.
...
Рейтинг: 0 / 0
17.03.2004, 21:19
    #32446242
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
По незнанию так приходится считать остаток. Копирую с таблицы прихода и продаж сгрупированные данные по наименованию и сумированные по количеству. Потому вычитаю из одной другую.

Но как все это обьеденить и без создания таблиц ?

sIn = "INSERT INTO ИтогоПолучено (Наименование, Количество) SELECT ТаблицаПоступлений.Наименование, Sum(ТаблицаПоступлений.Количество) AS Количество FROM ТаблицаПоступлений GROUP BY ТаблицаПоступлений.Наименование"

sOut = "INSERT INTO ИтогоПродано (Наименование, Количество) SELECT ТаблицаПродаж.Наименование, Sum(ТаблицаПродаж.Количество) AS [Количество] FROM Продажи INNER JOIN ТаблицаПродаж ON Продажи.КодПродажи = ТаблицаПродаж.КодПродажи WHERE (((Продажи.СостояниеТовара)= '" & "2Резерв" & "')) OR (((Продажи.СостояниеТовара)='" & "3Отгрузка" & "')) GROUP BY ТаблицаПродаж.Наименование"



CurrentDb.Execute (sDelIn)
CurrentDb.Execute (sDelOut)

sOstatok = "SELECT [ИтогоПолучено]![Количество]-[ИтогоПродано]![Количество] AS Разница FROM ИтогоПолучено INNER JOIN ИтогоПродано ON ИтогоПолучено.Наименование = ИтогоПродано.Наименование"

Кто сможет помочь ?
...
Рейтинг: 0 / 0
17.03.2004, 22:40
    #32446270
nukri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
кстати как будет эффективнее ?

1. сделать через рекорд сет ?
2. Или умудриться написать (если это возможно) весь запрос в одну строку

Спасибо
...
Рейтинг: 0 / 0
17.03.2004, 23:11
    #32446293
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать групировку в это запросе
Уважаемый nukri (заранее прошу прощения за сухость слога - я пьян), если вы знаток sql (t/u/v/w и т.д.) то это одно дело - тогда вам минус, в приведенном по ссылке топике это есть. И "как сделать одной строкой", и полученная вами ошибка, осталось только почитать
Если вы не знаток, поиграйте вложенными запросами, с distinct'ами и т.п., и не гните людям мозг.
---
Всех с наступающими и прошедшими праздниками. Ура!
(Вы спросите с какими? Так я не знаю.:)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать групировку в это запросе / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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