我想显示porcentaje
列的值,但只显示id最高的记录(每item
):
SELECT tb_avance.item, tb_avance.id, tb_proceso.porcentaje
FROM tb_avance_detalle
INNER JOIN tb_avance on tb_avance_detalle.id_avance=tb_avance.id
INNER JOIN tb_proceso ON tb_proceso.id_avance_detalle=tb_avance_detalle.id
INNER JOIN tb_mapa ON tb_mapa.id = tb_avance_detalle.id_mapa
WHERE tb_mapa.manzana=107 AND tb_mapa.lote=12
输出:
item id porcentaje
--------------------------------------------
EXCAVACION DE FUNDACION 90 100
EXCAVACION DE FUNDACION 91 50
HORMIGON FUNDACIONES 92 90
HORMIGON FUNDACIONES 93 40
我想只显示标记的记录:
item id porcentaje
--------------------------------------------
EXCAVACION DE FUNDACION 90 100
EXCAVACION DE FUNDACION 91 50 <------
HORMIGON FUNDACIONES 92 90
HORMIGON FUNDACIONES 93 40 <------
像这样
item id porcentaje
--------------------------------------------
EXCAVACION DE FUNDACION 91 50
HORMIGON FUNDACIONES 93 40
答案 0 :(得分:0)
您应按项目分组,然后您可以使用group_concat
子句order by
,然后从中提取第一个值:
SELECT tb_avance.item,
max(tb_avance.id) as id,
cast(group_concat(tb_proceso.porcentaje order by id desc) as unsigned)
as porcentaje
FROM tb_avance_detalle
INNER JOIN tb_avance on tb_avance_detalle.id_avance = tb_avance.id
INNER JOIN tb_proceso ON tb_proceso.id_avance_detalle = tb_avance_detalle.id
INNER JOIN tb_mapa ON tb_mapa.id = tb_avance_detalle.id_mapa
WHERE tb_mapa.manzana = 107
AND tb_mapa.lote = 12
GROUP BY tb_avance.item