powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите с запросом
23 сообщений из 23, страница 1 из 1
помогите с запросом
    #32733813
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на скуле работало на ассекск нет
исх. данные
t1 - uid (int) s (int)
t2 - code(int) s(int)

в таблице t1 хранятся коды товара и сумма их оплаты
в таблице t2 хранятся проводки по оплате
полей само собой больше - здесь сама суть

в t1 в поле s я хочу записать сумму, оплаченную за товар, и беру ее из t2
запросом вида :
update t1 set s = ( select sum(s) from t2 where t2.code=t1.uid)
ну и получаю что "В операции должен исп обновляемый запрос."
help pls !

...
Рейтинг: 0 / 0
помогите с запросом
    #32733829
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что сначала придется отдельный запрос на суммирование написать, а затем его приджонить к первой таблице в абгрейде
...
Рейтинг: 0 / 0
помогите с запросом
    #32733840
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вызов запроса из самого акцесса, можно воспользоваться DSum.
Извне - один из вариантов в поиске:
http://www.sql.ru/forum/actualtopics.aspx?search=%C2+%EE%EF%E5%F0%E0%F6%E8%E8+%E4%EE%EB%E6%E5%ED+%E8%F1%EF%EE%EB%FC%E7%EE%E2%E0%F2%FC%F1%FF+%EE%E1%ED%EE%E2%EB%FF%E5%EC%FB%E9+%E7%E0%EF%F0%EE%F1&submit=%CD%E0%E9%F2%E8&bid=4
...
Рейтинг: 0 / 0
помогите с запросом
    #32733842
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Rivkin Dmitry
Не пройдет так.
...
Рейтинг: 0 / 0
помогите с запросом
    #32733866
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo2 Rivkin Dmitry
Не пройдет так.
Почему не пройдет? Сооружаем qq1 = "SELECT t2.code, Sum(t2.s) AS SumOfs
FROM t2
GROUP BY t2.code;"

и затем:

UPDATE t1 INNER JOIN qq1 ON t1.uid = qq1.code SET t1.s = [SumOfs];
...
Рейтинг: 0 / 0
помогите с запросом
    #32733890
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера столкнулся с подобным - использовать запрос на суммирование в запросе
на обновление не получилось. Пришлось действовать тупо: создать временную
таблицу из запроса, потом ее приджойнить к запросу на обновление.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
помогите с запросом
    #32733894
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin Dmitry Geo2 Rivkin Dmitry
Не пройдет так.
Почему не пройдет? Сооружаем qq1 = "SELECT t2.code, Sum(t2.s) AS SumOfs
FROM t2
GROUP BY t2.code;"

и затем:

UPDATE t1 INNER JOIN qq1 ON t1.uid = qq1.code SET t1.s = [SumOfs];
А проверить?
...
Рейтинг: 0 / 0
помогите с запросом
    #32733897
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я про что!
От того что вы завернули подзапрос в отдельном запросе он не стал обновляемым!!!
...
Рейтинг: 0 / 0
помогите с запросом
    #32733913
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А! Верно! Забывать стал, что Акс не позволяет апдейтить из nonupdatable query, слишком много пользуюсь SQL Server
Прошу прощения!
...
Рейтинг: 0 / 0
помогите с запросом
    #32733914
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил (A97) - не работает.
...
Рейтинг: 0 / 0
помогите с запросом
    #32733934
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
воспользовался советом GEO
UPDATE t1 SET s = DSum("s","t2","Code=" & [t1].[uid]);
спасибо.
...
Рейтинг: 0 / 0
помогите с запросом
    #32733949
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, это положение, что Акс не позволяет в запросе производить update если соурсом явсяется non updatable query, одно из самых, если не самое неприятное в Аксе! Почему разработчики Акса не могут переступить через этот запрет?
...
Рейтинг: 0 / 0
помогите с запросом
    #32734070
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
м..да радость была неполной и недолгой
вызов из vb
With myApp.Service.Command
.CommandType = adCmdStoredProc
.CommandText = "flatPaySumma"
.Execute
End With
где flatPaySumma это запрос
UPDATE t1 SET s = DSum("s","t2","Code=" & [t1].[uid]);
ну а в ответ :
Неопределенная функция 'DSum' в выражении.
Microsoft JET Database Engine
в чем не прав ?
...
Рейтинг: 0 / 0
помогите с запросом
    #32734098
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin DmitryКстати, это положение, что Акс не позволяет в запросе производить update если соурсом явсяется non updatable query, одно из самых, если не самое неприятное в Аксе! Почему разработчики Акса не могут переступить через этот запрет?
А вот для этого есть функции типа DMax (чего нет в том же MSSQL)!!!
...
Рейтинг: 0 / 0
помогите с запросом
    #32734104
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же говорю, что это только изнутри акцесса будет работать.

Извне - см. поиск. Временной таблицей можно обойти.
...
Рейтинг: 0 / 0
помогите с запросом
    #32734135
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome Rivkin DmitryКстати, это положение, что Акс не позволяет в запросе производить update если соурсом явсяется non updatable query, одно из самых, если не самое неприятное в Аксе! Почему разработчики Акса не могут переступить через этот запрет?
А вот для этого есть функции типа DMax (чего нет в том же MSSQL)!!!

Ничего не мешает соорудить такую ф-ию или что-нибудь еще и позакавыристее! :)
На самом деле, я люблю Акс! Есть в нем прекрасные инструменты для обработки БД и великолепные инструменты для интерфейса! В сочетании с SQL Server Акс становится еще более удобным средством разработки прикладных программ
...
Рейтинг: 0 / 0
помогите с запросом
    #32734520
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
update t1 inner join t2 on t1.id=t2.code
set t1.s=t1.s+t2.s
...
Рейтинг: 0 / 0
помогите с запросом
    #32734667
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG
Код: plaintext
1.
update t1 inner join t2 on t1.id=t2.code
set t1.s=t1.s+t2.s

Не уверен :(
Почему-то мне кажется, что update применяется к каждой обновляемой строке только ОДИН раз
Хотя надо проверить :)

Опа - проверил :)
И в правду все робит :)

PS: надо взять на вооружение

А понял откуда такое предположение
В MSSQL такой фокус не проходит
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
create table #x1 (id int, xxx int default( 0 ))
create table #x2 (id int, id1 int, xxx int)

insert into #x1 (id)
select  1 
union
select  2 
union
select  3 

insert into #x2 (id, id1, xxx)
select  1 ,  1 ,  10 
union
select  2 ,  1 ,  20 
union
select  3 ,  2 ,  15 
union
select  4 ,  2 ,  25 
union
select  5 ,  2 ,  10 
union
select  6 ,  3 ,  15 
union
select  7 ,  3 ,  5 

update #x1
set xxx = #x1.xxx + #x2.xxx
from #x1 inner join #x2 on #x1.id = #x2.id1

select * from #x1

drop table #x2
drop table #x1
...
Рейтинг: 0 / 0
помогите с запросом
    #32734725
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIG никогда не перестанет меня учить :)

Здорово! :)
...
Рейтинг: 0 / 0
помогите с запросом
    #32734727
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparomeНе уверен :( ...
Хотя надо проверить :) ....

Опа - проверил :)
И в правду все робит :)

PS: надо взять на вооружение...

А понял откуда такое предположение...
В MSSQL такой фокус не проходит...

"There are more things in heaven and earth, Horatio,Than are dreamt of in your philosophy."
:)
...
Рейтинг: 0 / 0
помогите с запросом
    #32734884
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG
Снимаю шляпу!

Надо только учитывать, что пользоваться запросом можно только один раз!
Или чистить таблицу t1 перед каждым использованием.
...
Рейтинг: 0 / 0
помогите с запросом
    #32735325
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG paparomeНе уверен :( ...
Хотя надо проверить :) ....

Опа - проверил :)
И в правду все робит :)

PS: надо взять на вооружение...

А понял откуда такое предположение...
В MSSQL такой фокус не проходит...

"There are more things in heaven and earth, Horatio,Than are dreamt of in your philosophy."
:)
Это - типа
А перевести?
...
Рейтинг: 0 / 0
помогите с запросом
    #32735517
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что ,молодежь Шекспира уже не читает? :)
Это из Гамлета :"Есть многое на свете друг Гораций ,что и не снилось нашим мудрецам"
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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