Mysql 将“选择结果”中的行转换为列
我有五张桌子tb1、tb2、tb3、tb4和tb5 这是select查询Mysql 将“选择结果”中的行转换为列,mysql,Mysql,我有五张桌子tb1、tb2、tb3、tb4和tb5 这是select查询 SELECT c.code_chantier, f.lib_famille, SUM(a.pamp_art * l.qte_ligne) AS Total FROM tb1 c JOIN tb2 b ON (c.id_chantier = b.chantier_id_chantier) JOIN tb3 l ON (b.id_brc = l.bon_rec
SELECT c.code_chantier, f.lib_famille, SUM(a.pamp_art * l.qte_ligne) AS Total
FROM tb1 c
JOIN tb2 b ON (c.id_chantier = b.chantier_id_chantier)
JOIN tb3 l ON (b.id_brc = l.bon_reception_id_reception)
JOIN tb4 a ON (l.article_id_article = a.id_article)
JOIN tb5 f ON(a.famille_id_famille = f.id_famille)
AND b.type_brc = 2
GROUP BY c.code_chantier, f.lib_famille
ORDER BY Total DESC
这是select查询的结果
+---------------+------------------+--------------------+
| code_chantier | lib_famille | Total |
+---------------+------------------+--------------------+
| SC-16-23 | TRAVAUX SPECIAUX | 42600.5 |
| SC-16-15 | TRAVAUX SPECIAUX | 42006.5 |
| AJ-16-01 | PEINTURE | 25018.779836090427 |
| MN-16-03 | PEINTURE | 22441.573751561686 |
| AJ-16-01 | TRAVAUX SPECIAUX | 8604.6135 |
| SC-16-26 | TRAVAUX SPECIAUX | 7660.799999999999 |
| MN-16-04 | PEINTURE | 6223.201931872805 |
| RA-16-12 | PEINTURE | 6118.147946090509 |
| AM-16-01 | TRAVAUX SPECIAUX | 6021.484556962026 |
| CB-16-02 | TRAVAUX SPECIAUX | 5509.265642857144 |
我只想在两列
TRAVAUX specialux
和PEINTURE
中显示出现的lib_famille
。例如,结果表的标题包含|code_chantier | TRAVAUX | specialuxpeintre | Total |
您只需选择lib_famille=“TRAVAUX specialux”
就可以得到一个带有布尔值的列,告诉您这是否是该列的值。可以说,这不是sql查询中应该做的事情,而是脚本本身。这只会导致您在决定向该列添加另一个值时必须在两个位置进行更改
SELECT c.code_chantier, f.lib_famille="TRAVAUX SPECIAUX" AS "TRAVAUX SPECIAUX", f.lib_famille="PEINTURE" AS "PEINTURE", SUM(a.pamp_art * l.qte_ligne) AS Total