|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
Привет всем. Подскажите как такое может быть... Запрос: Код: sql 1. 2. 3. 4.
Возвращает строки которых не должно быть, типа: Код клиента Реализация без НДС.........2223203717876.32223203811004.182223203928640.482223390002227060102227060202223202729017.642223202810949.42......... Там действительно "0". Тип данных Currency - "ровные нули" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 11:24 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex Привет всем. Подскажите как такое может быть... Запрос: Код: sql 1. 2. 3. 4.
Возвращает строки которых не должно быть, типа: Код клиента Реализация без НДС.........2223203717876.32223203811004.182223203928640.482223390002227060102227060202223202729017.642223202810949.42......... Там действительно "0". Тип данных Currency - "ровные нули" Вопрос связан с механизмом получения "DistinctCount" количества Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Такой подход включает в подсчет тех самых"нолевых клиентов".. Если использовать [Количество клиентов_]: Код: sql 1.
То расчет идет верно. "нолевых клиентов" нет. Проверено T-SQL на DWH Почему происходит расхождение? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2021, 15:35 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex, скорее всего тип данных у меры Double, а не Currency/ а т.к. Double это не точный тип данных, то там вместо 0 может быть что-то близкое к нему. поэтому сравнение на 0 не проходит.. попробуйте в формуле округлить лучше поменять тип в кубе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 11:32 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
ShIgor, Спасибо за участие. В том то и дело, что поля Currency и они точно 0 (NULL, см. ниже). Тут такая особенность: Куб состоит из двух секций в одной, в разрезе клиента, однозначна есть реализация, она всегда заполнена. Другая секция (будем считать ее "План"), вообще не содержит данные о реализации - поле [Реализация без НДС] - гарантировано NULL (тип numeric(18,4)) во всех строках. При запросе Код: sql 1. 2. 3. 4.
"нолевые клиенты" - это те клиенты которые есть в "плане", и нет в реализации. Они все выпадают в этом запросе. Как будто реализация равная NULL считается как значимая. (NullProcessing = Automatic) Что и удивляет Код: sql 1.
на этих же условиях отрабатывает корректно. Куда смотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 12:45 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex Тут такая особенность: Куб состоит из двух секций в одной, в разрезе клиента, однозначна есть реализация, она всегда заполнена. Другая секция (будем считать ее "План"), вообще не содержит данные о реализации - поле [Реализация без НДС] - гарантировано NULL (тип numeric(18,4)) во всех строках. Объединение в одну секцию через View - тот же результат ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 13:02 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex, может не разбираться что у Вас там со связями и настройками, а сделать проще? уйти от Count(Filter.. и не думать об этом. рассказать как или знаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 13:47 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
ShIgor grAlex, может не разбираться что у Вас там со связями и настройками, а сделать проще? уйти от Count(Filter.. и не думать об этом. рассказать как или знаете? ShIgor, Имеется ввиду MDX: block evaluation + суррогатный атрибут ? Но в любом случае лучше рассказать Заранее благодарю PS или Вы имеете ввиду физическую DC меру? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 14:02 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 14:42 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex, и да, и да... но сам использую слегка видоизмененное решение в группе мер от которой зависит подсчет создаю меру на поле у которого для всех записей значение null с необходимым типом агрегации. в данном случае SUM, чем добиваюсь корректной работы функции Aggregate и иерархий в измерении на котором будем делать подсчет. в скрипте куба определяю скоп для этой меры и измерения. Код: sql 1. 2. 3. 4.
дальше все встает автоматом и работает на отличных скоростях. для примера, вычисления по 100млн измерению абсолютно не уступают в производительности мере с типом агрегации DC. даже накопительный итог по такой мере вполне жизнеспособен. поэтому избавляюсь от DC везде, где могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2021, 15:46 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
ShIgor grAlex, и да, и да... но сам использую слегка видоизмененное решение приветствую производительность удивила... реально классная. а как допилить можно что бы не на пустое значение реагировала а на положительное. что бы считать только по положительным значениям ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2021, 19:54 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
montoya, This = IIF([Measures].[Реализация без НДС] > 0, 1, NULL); ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2021, 20:09 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex montoya, This = IIF([Measures].[Реализация без НДС] > 0, 1, NULL); класс! спасибо. теперь прийдётся всё переписывать))) благо не много ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2021, 20:19 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
grAlex montoya, This = IIF([Measures].[Реализация без НДС] > 0, 1, NULL); переписал, всё просто супер. кроме одной меры.... есть у меня мера в отдельной группе мер "Distinc Child товаров". справочник 500 000 товаров. по этой мере соответственно агрегации настроены. и работает за счёт агрегаций шустро. но.... это мера занимает пол куба по размеру... как-то слишком много. а вычисляемая по вышеописанному принципу считается очень долго... не подскажите в этой дилеме как лучше поступить.? заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2021, 22:07 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
вот такое ещё решение предлагают... 1. The Tabular Model. 2. An alternative to the distinct count using an extra dimension 3. The Microsoft Recommendations for distinct count measure попробую первые 2 пункта...интересно. https://www.mssqltips.com/sqlservertip/3043/different-options-for-creating-a-distinct-count-measure-in-ssas/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2021, 23:37 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
montoya., медленно это как? поэкспериментируйте с IIF, если проверяемое пространство куба разреженное, то NULL лучше расположить в части true и наоборот. я бы вообще рекомендовал отказаться от IIF если мера [Реализация без НДС] физическая, значит ее результат известен до заливки данных в куб. соответственно это условие можно сделать измерением [суммаНДC>0] да/нет. и просто использовать подпространство "да" в scope. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2021, 10:34 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
ShIgor montoya., медленно это как? поэкспериментируйте с IIF, если проверяемое пространство куба разреженное, то NULL лучше расположить в части true и наоборот. я бы вообще рекомендовал отказаться от IIF если мера [Реализация без НДС] физическая, значит ее результат известен до заливки данных в куб. соответственно это условие можно сделать измерением [суммаНДC>0] да/нет. и просто использовать подпространство "да" в scope. медленно - это я не дождался выполнения запроса. ждал минут 10 точно. ок, спасибо попробую! distinct count считаю для остатков товара. которые рассчитываются по формуле. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2021, 12:53 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
ну и кусок кода для DC Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2021, 13:03 |
|
NONEMPTY (IIF) Строки не отбрасываются условием
|
|||
---|---|---|---|
#18+
ShIgor montoya., медленно это как? поэкспериментируйте с IIF, если проверяемое пространство куба разреженное, то NULL лучше расположить в части true и наоборот. я бы вообще рекомендовал отказаться от IIF если мера [Реализация без НДС] физическая, значит ее результат известен до заливки данных в куб. соответственно это условие можно сделать измерением [суммаНДC>0] да/нет. и просто использовать подпространство "да" в scope. перевёл остатки с YearToDate на MonthToDate что странно - производительность мер остатков немного упала(на глаз не видно, только по студии) НО производительность DISTINCT Count - взлетела! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2021, 11:04 |
|
|
start [/forum/topic.php?fid=49&fpage=2&tid=1857064]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 157ms |
0 / 0 |