Como hacer que se me muestre el resultado en una sola fila en mysql
Publicado por Yoel (13 intervenciones) el 11/04/2020 05:51:25
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
Ejemplo de como lo necesito
Consulta SQL
Gracias.
Ejemplo de como me lo está mostrado
id1 | 5 | 10 |
id1 | | | 4 | 6
Ejemplo de como lo necesito
id1 | 5 | 10 | 4 | 6
Consulta SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
Valora esta pregunta


0