次のクエリがあります。
SELECT c.danhoEstetico, c.danhoDirecto
FROM conceptos c
INNER JOIN materialesconceptos mc ON mc.idConcepto = c.idConcepto
INNER JOIN materiales m ON m.idMaterial = mc.idMaterial
WHERE m.idMaterial IN (4,11,11)
これにより、次の結果が得られます (たとえば)。
danhoEstetico | danhoDirecto
1 | 0
1 | 0
0 | 0
0 | 0
同じ列のすべてのフィールド間の OR のように、各列の項目のいずれかに 1 があるかどうかを示すクエリを作成する必要があり、次のような出力が得られます。
danhoEstetico | danhoDirecto
1 | 0
私が試してみました:
SELECT
SUM(CASE c.danhoEstetico WHEN c.danhoEstetico=1 THEN 1 ELSE 0 END) AS de,
SUM(CASE c.danhoDirecto WHEN c.danhoDirecto=1 THEN 1 ELSE 0 END) AS dd
FROM conceptos c INNER JOIN materialesconceptos mc ON mc.idConcepto = c.idConcepto
INNER JOIN materiales m ON m.idMaterial = mc.idMaterial
WHERE m.idMaterial IN (4,11,11)
何らかの理由で、次の結果が得られます。
danhoEstetico | danhoDirecto
4 | 4
これに関するヒントはありますか?