elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Como hacer que se me muestre el resultado en una sola fila en mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como hacer que se me muestre el resultado en una sola fila en mysql  (Leído 128 veces)
yoelrodguez

Desconectado Desconectado

Mensajes: 125



Ver Perfil WWW
Como hacer que se me muestre el resultado en una sola fila en mysql
« en: 11 Abril 2020, 05:49 »

Hola a todos: tengo la siguiente situación, estoy haciendo una consulta con mysql para obtener todos valores por aseguradora de una mismo id separados por columnas. Para obtener los resultados por columnas, a la hora de ejecutar el Query estoy usando CASE con la siguiente condición de GROUP BY (GROUP BY agent.id,  `client`.`id_insured`)  si me da el resultado esperado en las nuevas columnas que estoy creando, mostrandome una linea por cada aseguradora que tengo pero si quito  id_insured del GROUP BY  para obtener el resultado en una sola línea por cada id las columnas (numclimol, nummenmol, numcliamb, nummenamb, numcliflo, nummenflo, numcliosc, nummenosc, numclicig, nummencig, numclibri, nummenbri) me devuelven valor null . A continuación les dejo el código para ver si me pueden ayudar.

Gracias.

Ejemplo de como me lo está mostrado

Citar

id1 | 5 | 10 |
id1 |    |       | 4 | 6

Ejemplo de como lo necesito
Citar
id1 | 5 | 10 | 4 | 6

Consulta SQL

Código:
SELECT CONCAT(agent.agent_name,' ',agent.agent_lastname) AS agent, `agent`.`npn`, SUBSTRING(`client`.`aplication_date`,1,4) AS pyear,GROUP_CONCAT(DISTINCT `client`.agent2 ORDER BY  `client`.agent2 ASC SEPARATOR ' | ') AS agent2,
CASE WHEN `client`.`id_insured` = 1 THEN COUNt(`client`.id) END AS numclimol,
CASE WHEN `client`.`id_insured` = 1 THEN SUM(`client`.`family_menber`) END AS nummenmol,
CASE WHEN `client`.`id_insured` = 2 THEN COUNt(`client`.id) END AS numcliamb,
CASE WHEN `client`.`id_insured` = 2 THEN SUM(`client`.`family_menber`) END AS nummenamb,
CASE WHEN `client`.`id_insured` = 3 THEN COUNt(`client`.id) END AS numcliflo,
CASE WHEN `client`.`id_insured` = 3 THEN SUM(`client`.`family_menber`) END AS nummenflo,
CASE WHEN `client`.`id_insured` = 9 THEN COUNt(`client`.id) END AS numcliosc,
CASE WHEN `client`.`id_insured` = 9 THEN SUM(`client`.`family_menber`) END AS nummenosc,
CASE WHEN `client`.`id_insured` = 11 THEN COUNt(`client`.id) END AS numclicig,
CASE WHEN `client`.`id_insured` = 11 THEN SUM(`client`.`family_menber`) END AS nummencig,
CASE WHEN `client`.`id_insured` = 12 THEN COUNt(`client`.id) END AS numclibri,
CASE WHEN `client`.`id_insured` = 12 THEN SUM(`client`.`family_menber`) END AS nummenbri
FROM agent INNER JOIN `client` ON `client`.id_agent = agent.id WHERE `client`.`borrado` <> 1
AND SUBSTRING(`client`.`aplication_date`,1,4) = '2020' GROUP BY agent.id,  `client`.`id_insured`   ORDER BY agent.id ASc, `client`.`id_insured` ASC


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines