SQL Server - duda query sql server

 
Vista:

duda query sql server

Publicado por Ups (2 intervenciones) el 17/09/2020 14:08:21
Buenas. Soy nuevo en Sql Server.
Tengo una tabla de esta forma:


Person Phase Status DateTime

Peter Sleeping Running 03/04/2019 1:06
Peter Sleeping Running 03/04/2019 1:07
Peter Sleeping Complete 03/04/2019 1:08
Peter Sleeping Running 03/04/2019 1:09
Peter Sleeping Complete 03/04/2019 1:10
John Eating Running 03/05/2019 2:06
John Eating Complete 03/05/2019 2:26
John Eating Running 03/05/2019 2:27
John Eating Complete 03/05/2019 2:28
Marcus Studying Running 03/07/2019 3:16
Marcus Eating Running 03/07/2019 3:45
Marcus Studying Complete 03/07/2019 3:46
Marcus Eating Complete 03/07/2019 3:56

necesito hacer una consulta en la cual me de como resultados las 4 columnas anteriores y una columna mas que me diga la fecha en la que una phase de una person ha tenido el estado complete. Para esta tabla el resultado seria el siguiente:



Person Phase Status DateTime EndDate

Peter Sleeping Running 03/04/2019 1:06 03/04/2019 1:08
Peter Sleeping Running 03/04/2019 1:07 03/04/2019 1:08
Peter Sleeping Complete 03/04/2019 1:08 03/04/2019 1:08
Peter Sleeping Running 03/04/2019 1:09 03/04/2019 1:10
Peter Sleeping Complete 03/04/2019 1:10 03/04/2019 1:10
John Eating Running 03/05/2019 2:06 03/05/2019 2:26
John Eating Complete 03/05/2019 2:26 03/05/2019 2:26
John Eating Running 03/05/2019 2:27 03/05/2019 2:28
John Eating Complete 03/05/2019 2:28 03/05/2019 2:28
Marcus Studying Running 03/07/2019 3:16 03/07/2019 3:46
Marcus Eating Running 03/07/2019 3:45 03/07/2019 3:56
Marcus Studying Complete 03/07/2019 3:46 03/07/2019 3:46
Marcus Eating Complete 03/07/2019 3:56 03/07/2019 3:56


no se me ocurre como conseguir este resultado. Alguien me puede ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

duda query sql server

Publicado por Isaias (4392 intervenciones) el 17/09/2020 18:47:38
Sorry, pero no me queda claro, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda query sql server

Publicado por Ups (2 intervenciones) el 18/09/2020 08:24:43
Por ejemplo en la primera fila Peter esta en Phase Sleeping y el Status de esa Phase es Running y ha empezado a esa hora DateTime necesito que aparezca esta misma informacion pero ademas que aparezca otra columna con la hora en la que termina esta Phase de Sleeping de Peter.
Por lo que esa Phase se completa cuando el Status de Sleeping para Peter sea Complete entonces la DateTime en la que sea Peter Sleeping Complete consideramos que esa seria la hora a la que termina esa phase sleeping de Peter.

Anteriormente lo hice con formulas DAX os dejo el codigo por si os ayuda.

1
2
3
4
5
6
7
8
9
10
11
End Date =
CALCULATE(
    MIN('Table'[DateTime]),
    FILTER(
        ALL('Table'),
        'Table'[Person]=EARLIER('Table'[Person])&&
        'Table'[Phase]=EARLIER('Table'[Phase])&&
        'Table'[Status]="Complete"&&
        'Table'[DateTime]>=EARLIER( 'Table'[DateTime])
    )
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

duda query sql server

Publicado por Isaias (4392 intervenciones) el 18/09/2020 16:37:39
Pues si tomas el primer registro de RUNNING y el ultimo de COMPLETE por cada usuario y haces un DATEDIFF de las fechas, te dará el tiempo transcurrido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar