|  | 
| 
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&msg=40105840&tid=1857064]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 48ms | 
| get topic data: | 10ms | 
| get forum data: | 2ms | 
| get page messages: | 51ms | 
| get tp. blocked users: | 1ms | 
| others: | 239ms | 
| total: | 378ms | 

| 0 / 0 | 
