|
|
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Таблица Заказ связана с СоставЗаказа. В Заказ есть поле [Сумма], в СоставЗаказа каждому заказу соответствуют несколько записей с полем [Цена]. Как занести в поле [Заказ].[Сумма] сумму значений [СоставЗаказа].[Цена] по каждому заказу? Нагородил сложную процедуру с пробегом по рекордсету "Заказ", получаю из него idЗаказ, использую его как отбор для рекордсета "СоставЗаказа", потом считаю сумму и редактирую запись в рекордсете "Заказ". Вобщем: хрен чего и сбоку бантик! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 15:25:54 |
|
||
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Гера, хранение суммы в отдельном поле при наличии ее составляющих есть нарушение нормализации. Хочу подчеркнуть, что само по себе это не является ошибкой, но идти на это нужно сознательно, попробовав сперва другие варианты, как напр. вычисление суммы заказа каждый раз по слагаемым. Пользователь об этом не обязан знать - он будет видеть просто цифры в формах и отчетах. В случае хранения суммы в отдельном поле нужно тщательно следить за целостностью данных: предусмотреть механизм обновления стоимости заказа при любом изменении цены нужно . В общем случае заполнить поле "СуммаЗаказа" можно через Update Zakaz Inner Join SostavZakaza On ....... Set SummaZakaza = ...... Можно сделать обновление суммы заказа по событиям на форме, связанным с изменением записей в деталях заказа по кнопке. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 15:37:27 |
|
||
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Ха! Так это было первое, что я попробовал: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 18:11:29 |
|
||
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Я так понимаю, нужно решить две проблемы - если первая решена, тогда - одна :-) 1) заполнить множество полей "сумма" в табл. Заказ для имеющихся записей СоставЗаказа. Здесь можно использовать Update с функцией по подмножесту Dsum() вместо агрегатной функции Sum(). 2) заполнять динамически поле "Сумма" при заполнении нового заказа. Здесь можно использовать тот же 'Update Zakaz Set SummaZakaza = ' & Me!SostavZakaza!Vsego где Vsego - поле подформы с вычисленной суммой заказа. Так все-таки, точно ли нужно сумма заказа в отдельном поле в таблице Заказ? -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 18:33:52 |
|
||
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Да, нужно(знаю, что нарушается нормализация) хранить сумму. С DSum работает, спасибо! Правда выводит глупое сообщение "Будет обновлено 10 записей", но обновляет, конечно одну - это в СоставЗаказа 10 слагаемых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 18:55:07 |
|
||
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Рано обрадывался! Если в табл.Заказы больше одного заказа, то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 11:39:35 |
|
||
|
Как сумму значений записей перенести в связанную таблицу?
|
|||
|---|---|---|---|
|
#18+
Рано обрадывался! Если в табл.Заказы больше одного заказа, то DSum делает такую гадость: из СоставЗаказа вычисляет сумму значений [СоставЗаказа].[Цена] по всем заказам и записывает это значение во все поля [Заказ].[Сумма]. Попробывал так: в одном запросе вычисляю Sum по каждому заказу, запрос возвращает только idЗаказ и Sum_Цена. Во втором запросе, на обновление, связываю Заказы и Запрос1 и пытаюсь изменять [Заказ].[Сумма] значением Sum_Цена - не дает, из-за групповой функции Sum в Запросе1 и Запрос2 становится необновляемым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 11:48:27 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32842622&tid=1669550]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 329ms |

| 0 / 0 |
