MySQL Forums
Forum List  »  Spanish

Re: Group_Concat columna que devuelve varios valores
Posted by: Peter Brawley
Date: May 08, 2020 08:54PM

SELECT 
  articulo.CodEmpresa,articulo.id,articulo.Nombre,
  GROUP_CONCAT( if(articulolistaprecio.CodListaPrecio=1, articulolistaprecio.precio, null)) AS `Precio1`,
  GROUP_CONCAT( if(tipocodificacionarticulo.id=1, valor, null) ) AS Codigo1,
  GROUP_CONCAT( if(tipocodificacionarticulo.id=2, valor, null) ) AS Codigo2,
  GROUP_CONCAT( if(tipocodificacionarticulo.id=3, valor, null) ) AS Codigo3
FROM articulo
LEFT JOIN `articulolistaprecio` 
  ON (`articulo`.`CodEmpresa` = `articulolistaprecio`.`CodEmpresa`)
  AND (`articulo`.`Id` = `articulolistaprecio`.`CodArticulo`)
LEFT JOIN `articulotipocodificacionarticulo` 
  ON (`articulo`.`Id` = `articulotipocodificacionarticulo`.`CodArticulo`)
LEFT JOIN tipocodificacionarticulo 
  ON articulotipocodificacionarticulo.codtipocodificacionarticulo=tipocodificacionarticulo.id
WHERE articulo.codempresa=100 
  AND articulo.estado=1 
  AND articulotipocodificacionarticulo.estado=1 
  AND (articulo.nombre LIKE '%YERBA%' OR articulotipocodificacionarticulo.valor LIKE '%YERBA%')
-- VER "ONLY_FULL_GROUP_BY" EN EL MANUAL
GROUP BY articulo.CodEmpresa,articulo.id, articulo.nombre  
ORDER BY articulo.nombre
LIMIT 50;
+------------+------+-----------------------------------+---------------------+---------------+---------+---------+
| CodEmpresa | id   | Nombre                            | Precio1             | Codigo1       | Codigo2 | Codigo3 |
+------------+------+-----------------------------------+---------------------+---------------+---------+---------+
|        100 | 2835 | Amanda Yerba Campo 500 Gr.        | 256.00000,256.00000 | 7792710000274 | NULL    | 2835    |
|        100 | 8676 | CHEVALIER YERBA MATE EN SAQ X 20U | 0.00000,0.00000     | 7791775000694 | NULL    | 8676    |
+------------+------+-----------------------------------+---------------------+---------------+---------+---------+

-- AISLAR `PRECIO`
select 
  articulo.codEmpresa, articulo.Id, articulolistaprecio.CodEmpresa, articulolistaprecio.CodArticulo, articulolistaprecio.precio
FROM articulo 
LEFT JOIN `articulolistaprecio` 
  ON (`articulo`.`CodEmpresa` = `articulolistaprecio`.`CodEmpresa`)
  AND (`articulo`.`Id` = `articulolistaprecio`.`CodArticulo`);
+------------+------+------------+-------------+-----------+
| codEmpresa | Id   | CodEmpresa | CodArticulo | precio    |
+------------+------+------------+-------------+-----------+
|        100 | 2835 |        100 |        2835 | 256.00000 |
|        100 | 8676 |        100 |        8676 |   0.00000 |
+------------+------+------------+-------------+-----------+
¿Cuál es el problema?

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Group_Concat columna que devuelve varios valores
89
May 08, 2020 08:54PM


Sorry, only registered users may post in this forum.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.