|
Responder
|
Página <12 |
| Autor | |
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 25/Marzo/2021 a las 16:25 |
|
¿Pero qué agrupación?
.. en la cláusula GROUP BY sólo deben estar los campos por los que quieras que agrupe ... ni uno más. Editado por Mihura - 25/Marzo/2021 a las 16:26 |
|
![]() |
|
shenares
Habitual
Unido: 01/Septiembre/2020 Localización: Madrid Estado: Sin conexión Puntos: 62 |
Enviado: 25/Marzo/2021 a las 16:31 |
|
Hola,
La agrupación esta bien, lo que necesito es que de esas agrupaciones me coja el mínimo Id de los que tengan valor 'Testing' y 'Global..'. Esta es la idea. |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 25/Marzo/2021 a las 17:07 |
|
OK, entonces son varias consultas:
- una que obtenga las agrupaciones que quieres (esa ya la tienes hecha) - otra que obtenga los valores mínimos de Testing y Global - una tercera que relacione las dos anteriores |
|
![]() |
|
shenares
Habitual
Unido: 01/Septiembre/2020 Localización: Madrid Estado: Sin conexión Puntos: 62 |
Enviado: 25/Marzo/2021 a las 17:48 |
|
Hola,
Gracias, he intentado realizar la consulta pero no me aparece nada coherente: SELECT Agrupaciones.Model, Agrupaciones.Status_date, (select status from projects_status where id = MinStat.MinId) AS DevStatus FROM (SELECT Model, Status, Status_date, ExecutionProject_id FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Global Final Report') AND YEAR(Status_date) = Year(DATE()) GROUP BY Model, Status, Status_date, ExecutionProject_id) AS Agrupaciones , (SELECT Status, Min(Id) As MinId FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Global Final Report') Group By Status) AS MinStat; He mezclado ambas tablas pero no creo que este bien... |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 25/Marzo/2021 a las 18:17 |
|
SELECT CamposQueQuieroVer
FROM (ConsultaGrupos) AS T1 LEFT JOIN (ConsultaMinimos) AS T2 ON T1.Status=T2.Status
|
|
![]() |
|
shenares
Habitual
Unido: 01/Septiembre/2020 Localización: Madrid Estado: Sin conexión Puntos: 62 |
Enviado: 26/Marzo/2021 a las 08:53 |
|
Hola,
He intentado realizar la siguiente consulta, pero me da error en la sentencia FROM y no se el motivo: SELECT T1.Model, T1.Status, T1.Status_date FROM (SELECT Model, Status, Status_date, ExecutionProject_id FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Completed') AND YEAR(Status_date) = Year(DATE()) AS T1 LEFT JOIN (SELECT Min(Id), Status FROM Projects_status) AS T2 ON T1.Status = T2.Status; |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 26/Marzo/2021 a las 11:43 |
|
¿Las subconsultas por separado te funcionan?, es decir, esto ¿te da los valores que quieres?:
SELECT Model, Status, Status_date, ExecutionProject_id FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Completed') AND YEAR(Status_date) = Year(DATE() ¿y esto también?: SELECT Min(Id), Status FROM Projects_status |
|
![]() |
|
shenares
Habitual
Unido: 01/Septiembre/2020 Localización: Madrid Estado: Sin conexión Puntos: 62 |
Enviado: 26/Marzo/2021 a las 13:01 |
|
Hola,
He visto que había algún error y lo he arreglado. Aún así, no me da los valores que quiero: Sentencia: SELECT T1.ExecutionProject_id, T1.Model, T1.Status, T1.Status_date FROM (SELECT Model, Status, Status_date, ExecutionProject_id FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Completed') AND YEAR(Status_date) = Year(DATE())) AS T1 LEFT JOIN (SELECT Min(Id) As Mmid, Status FROM Projects_status Group by Status) AS T2 ON T1.Status = T2.Status; Resultado: ExecutionProject_id Model Status Status_date 81 LBAD0XX1SC-DM Completed 02/03/2021 85 C1121X-8PLTEP Testing 03/03/2021 85 C1121X-8PLTEP Testing 05/03/2021 85 C1121X-8PLTEP Testing 09/03/2021 85 C1121X-8PLTEP Testing 09/03/2021 299 L610-EU Testing 27/01/2021 299 L610-EU Testing 01/02/2021 299 L610-EU Testing 02/02/2021 299 L610-EU Testing 03/02/2021 301 APOS A8 Testing 07/01/2021 301 APOS A8 Testing 12/01/2021 301 APOS A8 Testing 01/02/2021 85 C1121X-8PLTEP Completed 29/01/2021 0 MY21 TCP GA/GB Testing 04/03/2021 0 MY19 TCP GA Testing 12/03/2021 0 MY23 TCP GB Testing 17/03/2021 245 CB3 Basic EU Testing 17/03/2021 245 CB3 Basic EU Testing 17/03/2021 245 CB3 Basic EU Testing 18/03/2021 245 CB3 Basic EU Testing 18/03/2021 245 CB3 Basic EU Testing 19/03/2021 301 APOS A8 Completed 16/03/2021 0 MY20 TCP GB Completed 17/03/2021 0 MY21 TCP GA/GB Completed 04/03/2021 0 MY19 TCP GA Completed 12/03/2021 0 MY23 TCP GB Completed 17/03/2021 Por ejemplo, para el model C1121X-8PLTEP, execution Id 85, muestra varios valores de 'Testing' y solo quiero que me muestre el minimo. ¿que puede pasar? YUn slaudo, |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 26/Marzo/2021 a las 13:03 |
|
¿Qué valores obtienes con las dos subconsultas por separado?
|
|
![]() |
|
shenares
Habitual
Unido: 01/Septiembre/2020 Localización: Madrid Estado: Sin conexión Puntos: 62 |
Enviado: 26/Marzo/2021 a las 14:11 |
|
Hola,
Esta sentencia (SELECT Model, Status, Status_date, ExecutionProject_id FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Completed') AND YEAR(Status_date) = Year(DATE())): Model Status Status_date ExecutionProject_id LBAD0XX1SC-DM Completed 02/03/2021 81 C1121X-8PLTEP Testing 03/03/2021 85 C1121X-8PLTEP Testing 05/03/2021 85 C1121X-8PLTEP Testing 09/03/2021 85 C1121X-8PLTEP Testing 09/03/2021 85 L610-EU Testing 27/01/2021 299 L610-EU Testing 01/02/2021 299 L610-EU Testing 02/02/2021 299 L610-EU Testing 03/02/2021 299 APOS A8 Testing 07/01/2021 301 APOS A8 Testing 12/01/2021 301 APOS A8 Testing 01/02/2021 301 C1121X-8PLTEP Completed 29/01/2021 85 MY21 TCP GA/GB Testing 04/03/2021 0 MY19 TCP GA Testing 12/03/2021 0 MY23 TCP GB Testing 17/03/2021 0 CB3 Basic EU Testing 17/03/2021 245 CB3 Basic EU Testing 17/03/2021 245 CB3 Basic EU Testing 18/03/2021 245 CB3 Basic EU Testing 18/03/2021 245 CB3 Basic EU Testing 19/03/2021 245 APOS A8 Completed 16/03/2021 301 MY20 TCP GB Completed 17/03/2021 0 MY21 TCP GA/GB Completed 04/03/2021 0 MY19 TCP GA Completed 12/03/2021 0 MY23 TCP GB Completed 17/03/2021 0 Esta sentencia (SELECT Min(Id) As Mmid, Status FROM Projects_status Group by Status): Mmid Status 170 Completed 183 Created 247 Debugging 63 EoT DEKRA 1 First Contact 169 Global Final Report 52 Kick-Off/Setup 233 NDA/Quoation 18 NDA/Quotation 49 Offer Accepted 86 Offer received 29 Offer sent 8 Quotation/NDA 51 Samples Received 7 SRF Received 59 Testing 5 Welcome Pack Un saludo, |
|
![]() |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 26/Marzo/2021 a las 15:33 |
|
Pues con esos valores te tendrá que mostrar MMid = 170 en Completed y 59 en los casos de Testing.
SELECT T1.ExecutionProject_id, T1.Model, T1.Status, T1.Status_date, T2.MMid .....
|
|
![]() |
|
Juanmasp
Habitual
Unido: 21/Abril/2006 Estado: Sin conexión Puntos: 122 |
Enviado: 26/Marzo/2021 a las 15:49 |
|
Hola,
Yo creo que tal y como tenías la consulta, cambiando un par de cosas, te tiene que dar el resultado que buscas. Tienes que quitar la agrupación por Status_date (porque así te saldría el primero de cada fecha distinta) Así SELECT Min(Id), Model, Status, Min(Status_date), ExecutionProject_id FROM Projects_status WHERE (Status = 'Testing' Or Status = 'Global Final Report') AND YEAR(Status_date) = Year(DATE()) GROUP BY Model, Status, ExecutionProject_id; Salu2. |
|
![]() |
|
shenares
Habitual
Unido: 01/Septiembre/2020 Localización: Madrid Estado: Sin conexión Puntos: 62 |
Enviado: 29/Marzo/2021 a las 09:08 |
|
Gracias @Juanmasp, esa es la sentencia que buscaba! un saludo!
|
|
![]() |
|
Responder
|
Página <12 |
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |