|
19.05.2017, 11:39 | #1 |
Moderator
|
Можно посмотреть на sysComputedColumn и примеры его использования.
По большому счету - весь этот механизм генерирует текст с определением вычислимого поля для view. Более того - есть подозрение что при некотором упорстве туда тупо можно засунуть SQL, который эту колонку будет рассчитывать для данного itemId и inventDim. То есть - написать хранимку в сиквеле, а потом в DAX2012 определить view состоящий из inventSum и вычислимого поля. А в самом определении поля засунуть вызов хранимки с текущим значением inventSum.itemId и inventSum.inventDimId. Конечно хранимка будет не очень быстро работать и на большой выборке запрос по подобному view будет работать долго, но для конкретных небольших выборок оно вполне даже может прилично отрабатывать... Можно кстати определить вычислимое поле как inventSum.postedQty+unconfirmedPostedQty(inventSum.itemId, inventSum.inventDimId). Есть правда проблема того как обрабатывать ситуацию с текущей сессией, по которой надо собирать неподтвержденные операции. Я бы попытался сделать картезианское произведение SysClientSessions и InventSum, при этом значение sessionId передавал бы в хранимую процедуру. Также SessionId надо будет вывести как дополнительное поле во view, а в любых запросах писать что-то типа: Select sum(postedQty) from mySuperView where mySuperView.sessionId==sessionId() && mysuperView.itemid==itemId В общем - в зависимости от мощности вашего сервера оно может сработать, а может и не сработать |
|
|
За это сообщение автора поблагодарили: Logger (3). |
19.05.2017, 11:41 | #2 |
Участник
|
Цитата:
Сообщение от fed
Можно посмотреть на sysComputedColumn и примеры его использования.
мне кажется, что для грязных данных. это какой-то перебор. |
|