Вычисляемое поле в таблице, чтобы определить, является ли первая строка успешной или неудачной - PullRequest
3 голосов
/ 01 апреля 2019

У меня есть данные ниже (из таблицы) с полями TransactionDate, UserID и StatusDesc. Цель состоит в том, чтобы я хотел показать userID, где UserID не имеет ошибки входа в систему (обозначается столбцом statusDesc - «Отклонено»), произошедшей ранее в тот же день, что и успешный вход в систему (Успешный вход в систему обозначен столбцом statusDesc - «Success»). «).

Фактические данные

            TransactionDate                 UserId                      StatusDesc

            2018-12-02 00:00:01.957     Cesarmartinez1795@gmail.com     Rejected
            2018-12-02 00:00:14.907     Cesarmartinez1795@gmail.com     Success
            2018-13-02 00:00:22.390     Cesarmartinez1795@gmail.com     Success
            2018-13-02 00:00:28.610     Cesarmartinez1795@gmail.com     Rejected
            2018-14-02 00:00:22.390     ssunlife@gmail.com              Success
            2018-14-02 00:00:28.610     ssunlife@gmail.com              Rejected

Ожидаемый результат

            TransactionDate                 UserId                      StatusDesc
            2018-13-02 00:00:22.390     Cesarmartinez1795@gmail.com     Success
            2018-14-02 00:00:22.390     ssunlife@gmail.com              Success 

1 Ответ

3 голосов
/ 02 апреля 2019

Для этого можно использовать выражение LOD (уровень детализации) в вычисляемом поле. Поначалу LOD может быть сложно обернуть голову, но как только вы их несколько раз используете, они становятся очень удобными.

  1. Создайте новое вычисляемое поле в разделе «Размеры» под названием «Первое отклонение дня». Это будет иметь метку времени первого отклонения дня для пользователя, или ноль, если не было никаких отклонений. Используйте следующий код:

{ FIXED [UserId], DATE([TransactionDate]) : MIN(
    IF [StatusDesc] = "Rejected" THEN
      [TransactionDate]
    END
  )
}
  1. Создайте еще одно вычисляемое поле с именем «Имеет предварительный отказ». Используйте следующий код:

ISNULL([First Rejection of Day]) = FALSE AND [First Rejection of Day] <= [TransactionDate]
  1. Перетащите элемент «Отклонено» до «Фильтры» и выберите «Ложь». Это отфильтрует все записи, которые были отклонены ранее.

Снимок экрана в таблице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...