Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

EARLIER chalenge

Hello Power friends,

 

I have a table with IT tickets like that:

Id_ticket, date, old_status, new_status,days_to_fix

100,01/01/2018,<blank>,"new ticket" ,0 // user report a problem opening a ticket

100,01/01/2018,"new ticket","working",0 // IT specialist start working on it

100,01/03/2018,"working","fixed", 2 // IT specialist solved it in two days

100,01/04/2018,"fixed" , "working",0 // user was not satisfied with solution and put the ticket on working status again

100,01/09/2018,"working","fixed", 5 // IT specialist got new solution in five days

100,01/10/2018,"fixed","closed", 0 // User accept this solution

 

The question is: "How can I calculate the "days_to_fix" collum in this example? Note that It has to be filled every time we have a "fixed" on new_status collum.

 

Thanks for your time and knowledge sharing.

  • Chihiro's avatar
    Chihiro
    7 years ago

    Greg gave you the basic construct, and link explaining the concept.

     

    You'll just need to change RETURN portion to only return result when [new_status]="fixed".

     

    So...

     

    Column =
    VAR __max =
        MAXX (
            FILTER (
                ALL ( 'Table' ),
                [Id_ticket] = EARLIER ( [Id_ticket] )
                    && [date] < EARLIER ( [date] )
                    && [new_status] = EARLIER ( [old_status] )
            ),
            [date]
        )
    RETURN
        IF ( [new_status] = "fixed", [date] - __max, 0 )

    Result

6 Replies

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks for your time Greg_Deckler, but, unfortunately, it didn't worked as expected. If you could check, I´ll be thankfull.

      The new collum had a unknown value in the first line (the new ticket) and in the 2nd "working" line.

       

      Thanks.

      • Chihiro's avatar
        Chihiro
        Icon for Solution Sage rankSolution Sage

        Greg gave you the basic construct, and link explaining the concept.

         

        You'll just need to change RETURN portion to only return result when [new_status]="fixed".

         

        So...

         

        Column =
        VAR __max =
            MAXX (
                FILTER (
                    ALL ( 'Table' ),
                    [Id_ticket] = EARLIER ( [Id_ticket] )
                        && [date] < EARLIER ( [date] )
                        && [new_status] = EARLIER ( [old_status] )
                ),
                [date]
            )
        RETURN
            IF ( [new_status] = "fixed", [date] - __max, 0 )

        Result