Página 1 de 1

Consulta sobre SQL: filtrar un registro en el resultado

NotaPublicado: 2014-05-28 08:14 @384
por seafree
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.000 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.

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

NotaPublicado: 2014-05-28 09:20 @430
por explorer
Supongo entonces que lo que habrá que agregar es que id_nexo is NULL.

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

NotaPublicado: 2014-05-28 12:24 @558
por seafree
¿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.000 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.000 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.

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

NotaPublicado: 2014-05-28 14:48 @658
por explorer
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.

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

NotaPublicado: 2014-05-28 15:45 @698
por seafree
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.