• Publicidad

Consulta sobre SQL: filtrar un registro en el resultado

Todo acerca de las bases de datos que existen: SQL, MySQL, Oracle, Postgres, CSV, etc.

Consulta sobre SQL: filtrar un registro en el resultado

Notapor seafree » 2014-05-28 08:14 @384

Buenos días, a través de la siguiente consulta:

SELECT id,descrip_comp,fecha_sale,fecha_entra,id_causa,id_anexo FROM t_eventos te, c_tipo_componentes ctc, c_componentes cc WHERE te.subestacion='EDO' AND tipo_evento like 'ATENDIDO%' AND (fecha_sale BETWEEN '2013-01-01 00:00:00' AND '2013-08-31 23:59:59') AND indice='S' AND te.id_tipo_componente=ctc.id_tipo_componente AND ctc.id_componente=cc.id_componente GROUP BY id,descrip_comp,fecha_sale,fecha_entra,id_causa,id_anexo ORDER BY descrip_comp,fecha_sale;

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
 id  | descrip_comp |     fecha_sale      |     fecha_entra     | id_causa | id_anexo
-----+--------------+---------------------+---------------------+----------+----------
 260 | COMPONENTE1  | 2013-05-24 15:57:00 | 2013-05-25 14:23:00 | PAIS     |        
 266 | COMPONENTE2  | 2013-07-29 18:23:00 | 2013-07-31 23:59:00 | PAIS     |        
 267 | COMPONENTE2  | 2013-08-01 00:00:00 | 2013-08-15 14:36:00 | PAIS     |      266
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4


requiero obtener únicamente dos registros ya que el primero es único; el segundo y el tercero forman un solo registro referenciado por el id_anexo. La consulta debe mostrar:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
descrip_comp   |     fecha_sale      |     fecha_entra     | id_causa |
---------------+---------------------+---------------------+----------+
COMPONENTE1    | 2013-05-24 15:57:00 | 2013-05-25 14:23:00 | PAIS     |
COMPONENTE2    | 2013-07-29 18:23:00 | 2013-08-15 14:36:00 | PAIS     |
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Les agradeceré su apoyo para lograr el resultado deseado. Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 179
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Consulta sobre SQL: filtrar un registro en el resultado

Notapor explorer » 2014-05-28 09:20 @430

Supongo entonces que lo que habrá que agregar es que id_nexo is NULL.
JF^D Perl Programming
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14035
Registrado: 2005-07-24 18:12 @800
Ubicación: Madrid, España

Re: Consulta sobre SQL: filtrar un registro en el resultado

Notapor seafree » 2014-05-28 12:24 @558

¿Qué tal, explorer? Gracias por responder. Realizo tu sugerencia:

SELECT id,descrip_comp,fecha_sale,fecha_entra,id_causa,id_anexo FROM t_eventos te, c_tipo_componentes ctc, c_componentes cc WHERE te.subestacion='EDO' AND tipo_evento like 'DISPARO-RECIERRE%' AND (fecha_sale BETWEEN '2013-01-01 00:00:00' AND '2013-08-31 23:59:59') AND indice='S' AND te.id_tipo_componente=ctc.id_tipo_componente AND ctc.id_componente=cc.id_componente and id_anexo is null GROUP BY id,descrip_comp,fecha_sale,fecha_entra,id_causa,id_anexo ORDER BY descrip_comp,fecha_sale ;

RESULTADO:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
 id  | descrip_comp |     fecha_sale      |     fecha_entra     | id_causa | id_anexo
-----+--------------+---------------------+---------------------+----------+----------
 260 | REACTORES    | 2013-05-24 15:57:00 | 2013-05-25 14:23:00 | PAIS     |
 266 | REACTORES    | 2013-07-29 18:23:00 | 2013-07-31 23:59:00 | PAIS     |
(2 rows)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Exactamente me trae dos registros pero necesito que esos dos registros se muestren como sigue:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
 id  | descrip_comp |     fecha_sale      |     fecha_entra     | id_causa | id_anexo
-----+--------------+---------------------+---------------------+----------+----------
 260 | REACTORES    | 2013-05-24 15:57:00 | 2013-05-25 14:23:00 | PAIS     |
 267 | REACTORES    | 2013-07-29 18:23:00 | 2013-08-15 14:36:00 | PAIS     |      266
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Los id solo son importante para la lógica del SQL, pero si observas, toma la fecha_sale del registro con id 266 y la fecha_entra del registro 267. ¿Se puede por SQL?

Los dos registros debe corresponder a los id 260 y 267.

Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 179
Registrado: 2012-08-10 11:26 @518

Re: Consulta sobre SQL: filtrar un registro en el resultado

Notapor explorer » 2014-05-28 14:48 @658

Curioso... salen los datos de otro registro...

Apuesto a que el problema es el GROUP BY... que estará agrupando la información de varios registros en uno solo.
JF^D Perl Programming
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14035
Registrado: 2005-07-24 18:12 @800
Ubicación: Madrid, España

Re: Consulta sobre SQL: filtrar un registro en el resultado

Notapor seafree » 2014-05-28 15:45 @698

Así es, por eso mi pregunta era si esto lo podía hacer a través del SQL. Emplearé código para mostrar el resultado deseado. Gracias.

Aunque si existe la sugerencia con SQL, ¡bienvenida! Saludos.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 179
Registrado: 2012-08-10 11:26 @518


Volver a Bases de datos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado