我有5个表tb1,tb2,tb3,tb4和tb5
这是选择查询
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
这是选择查询的结果
+---------------+------------------+--------------------+
| 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 |
只是想在两列lib_famille
和TRAVAUX SPECIAUX
中显示PEINTURE
的出现次数。例如,结果表的标题包含| code_chantier |TRAVAUX | SPECIAUXPEINTURE | Total |
答案 0 :(得分:1)
您只需选择lib_famille="TRAVAUX SPECIAUX"
即可获得包含布尔值的列,告知您该列是否为该列的值。可以说,这不是你应该在你的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