Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
Здравствуйте,
Имеется работающий запрос:

SELECT FUNDS_BALANCE.ID, Sum(GRANTS_RECIEVED.FUNDS_SENT) AS TOTAL_SENT, Sum(GRANTS_RECIEVED.Finance_report) AS TOTAL_PER_REPT, FUNDS_BALANCE.Award
FROM GRANTS_RECIEVED INNER JOIN FUNDS_BALANCE ON GRANTS_RECIEVED.ID = FUNDS_BALANCE.ID
GROUP BY FUNDS_BALANCE.ID, FUNDS_BALANCE.Award;

Нужно обновить два поля в таблице FUNDS_BALANCE:
Field1 как TOTAL_SENT
Field2 как TOTAL_PER_REPT
24 мар 21, 00:13    [22299180]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
lanatver,
как я понял TOTAL_SENT, TOTAL_PER_REPT вычисляемые поля и в таблице им не место
тынц
24 мар 21, 00:52    [22299187]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
sdku,
Да, задача подхватить эти значения и вставить в другую таблицу
24 мар 21, 01:00    [22299189]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
lanatver
sdku,
Да, задача подхватить эти значения и вставить в другую таблицу

Точнее, обновить уже существующие значения в другой таблице.
24 мар 21, 01:03    [22299190]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
lanatver,
я толкую о том что хранить в таблице вычисляемые значения можно,но оооочень не нужно
а по существу-запрос UPDATE
24 мар 21, 01:27    [22299193]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
sdku
lanatver,
я толкую о том что хранить в таблице вычисляемые значения можно,но оооочень не нужно
а по существу-запрос UPDATE

Ну так и я знаю что UPDATE. Об этом был мой вопрос (см. название темы).

Сообщение было отредактировано: 24 мар 21, 01:30
24 мар 21, 01:35    [22299195]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7257
lanatver
нравится мне упрямство с которым хотят делать неправильно-не хранят в таблицах вычисляемые поля-зачем гробить кучу времени,пока до Вас это дойдет-проще воспользоваться
опытом тех кто это проходил
Если Вы знаете что это UPDATE почему не наблюдается это слово в тексте запроса? (SELECT-это запрос на выборку и он ничего и нигде не изменяет)
"Если ничего не помогает может уже пора прочитать инструкцию"(HELP,который здесь я пересказывать не буду, про запросы на обновление и научиться делать так как не надо)
24 мар 21, 03:59    [22299201]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
sdku
lanatver
нравится мне упрямство с которым хотят делать неправильно-не хранят в таблицах вычисляемые поля-зачем гробить кучу времени,пока до Вас это дойдет-проще воспользоваться
опытом тех кто это проходил
Если Вы знаете что это UPDATE почему не наблюдается это слово в тексте запроса? (SELECT-это запрос на выборку и он ничего и нигде не изменяет)
"Если ничего не помогает может уже пора прочитать инструкцию"(HELP,который здесь я пересказывать не буду, про запросы на обновление и научиться делать так как не надо)

Вы зафлудили весь пост, не прадлагая решения. Всё что здесь вы пытаетесь мне несчастной объяснить, я знала еще в первом классе. Не делают. И я не делаю. Еще раз, мне нужно обновить таблицу используя значения суммы из другой таблицы. Не можете помочь, не надо гнуть пальцы. Спасибо.
24 мар 21, 04:26    [22299203]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
lanatver, где-то так...
UPDATE FUNDS_BALANCE 
SET Field1=DSUM("FUNDS_SENT","GRANTS_RECIEVED", "ID = " & FUNDS_BALANCE.ID), 
    Field2=DSUM("Finance_report","GRANTS_RECIEVED", "ID = " & FUNDS_BALANCE.ID);
24 мар 21, 05:04    [22299207]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
Панург
lanatver, где-то так...
UPDATE FUNDS_BALANCE 
SET Field1=DSUM("FUNDS_SENT","GRANTS_RECIEVED", "ID = " & FUNDS_BALANCE.ID), 
    Field2=DSUM("Finance_report","GRANTS_RECIEVED", "ID = " & FUNDS_BALANCE.ID);

Отлично! Все работает как и хотелось. Очень элегантное решение. Спасибо огромное!
Один вопросик: statement по идее обновляет только те ID, где имеются какие-либо значения. Но когда запустила, в рядах где ничего нет - остаются пустые поля БЕЗ default value (0). Важно чтобы оставалось это значение по умолчанию 0.00, которое используется при других подсчетах. Есть ли способ оставить (или прописать заново) этот ноль?
24 мар 21, 13:01    [22299360]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
lanatver
Есть ли способ оставить (или прописать заново) этот ноль?
https://ru.wikipedia.org/wiki/Update_(SQL)
Функция Nz

Сообщение было отредактировано: 24 мар 21, 13:01
24 мар 21, 13:06    [22299365]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
Панург
lanatver
Есть ли способ оставить (или прописать заново) этот ноль?
https://ru.wikipedia.org/wiki/Update_(SQL)
Функция Nz

Ну да, добавила как одно из решений:
WHERE FUNDS_BALANCE.ID IN
(SELECT FUNDS_BALANCE.ID
FROM FUNDS_BALANCE
WHERE Field1 >0);
Работает.
Спасибо. Наверное есть более элегантное решение.... ;)
24 мар 21, 13:40    [22299403]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5181
lanatver
Ну да, добавила как одно из решений:

Панург
...
SET Field1=Nz(DSUM("FUNDS_SENT","GRANTS_RECIEVED", "ID = " & FUNDS_BALANCE.ID),0),
...



Панург
Функция Nz
24 мар 21, 14:25    [22299438]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
lanatver
Member

Откуда:
Сообщений: 8
Панург
lanatver
Ну да, добавила как одно из решений:

Панург
...
SET Field1=Nz(DSUM("FUNDS_SENT","GRANTS_RECIEVED", "ID = " & FUNDS_BALANCE.ID),0),
...



Панург
Функция Nz

То что надо! Работает как и нужно. Ещё раз спасибо!
24 мар 21, 15:04    [22299468]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE with SUM(): обновить поля в одной таблице значениями из СУММЫ в другой  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 900
sdku-sdku.... Вот только что же уже побывали в похожей ситуации...
24 мар 21, 15:11    [22299471]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить