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
200
May 08, 2020 08:54PM


Sorry, you can't reply to this topic. It has been closed.

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.