0
私はMySQLでこのクエリに問題があります。ケースの場合と比較する場合
このバージョンしようとした場合:
mysql> SELECT
COUNT(*),
myCode,
myState
FROM
`tbl_2016`
WHERE
`myCode` LIKE '%XI10-2-020012%'
GROUP BY
`myState`;
を出力は次のとおりです。
+----------+---------------+--------------------------------+
| COUNT(*) | myCode | myState |
+----------+---------------+--------------------------------+
| 5 | XI10-2-020012 | NULL |
| 4 | XI10-2-020012 | ACTIVE |
| 1 | XI10-2-020012 | NOT ACTIVE |
+----------+---------------+--------------------------------+
2 rows in set
しかし構文WHEN CASEで、この他versioneをしようとした場合:
mysql> SELECT
myCode,
COUNT(
CASE
WHEN myState IN (
'Active'
) THEN
1
ELSE
0
END
) AS `Active`,
COUNT(
CASE
WHEN myState IN (
'Not Active'
) THEN
1
ELSE
0
END
) AS `Not Active`
FROM
`tbl_2016`
WHERE
`myCode` LIKE '%XI10-2-020012%'
GROUP BY
`myState`;
が出力されます最初のバージョンと異なる:
+---------------+--------+------------+
| myCode | Active | Not Active |
+---------------+--------+------------+
| XI10-2-020012 | 4 | 4 |
+---------------+--------+------------+
1 row in set
これを解決するにはどうすればよいですか?
私を助けることができますか?
ありがとうございます、私のコードは以下のとおりです。