SQLクエリで「グループ関数の使用が無効です」というエラー出力が表示されました
これは私の質問です
SELECT * FROM
(SELECT project,tbl_nif.POno,tbl_custmon.so, tbl_nif.matcode, tbl_nif.prodesc,
COUNT(CASE WHEN WEEK(MAX(plannedGI))+1=6 THEN 1 ELSE NULL END) as `week 6`,
COUNT(CASE WHEN WEEK(MAX(plannedGI))+1=2 THEN 1 ELSE NULL END) as `week 2`,
COUNT(CASE WHEN WEEK(MAX(plannedGI))+1=3 THEN 1 ELSE NULL END) as `week 3`,
COUNT(CASE WHEN WEEK(MAX(plannedGI))+1=4 THEN 1 ELSE NULL END) as `week 4`
FROM tbl_nif,tbl_custmon,tbl_incoming
WHERE tbl_nif.so=tbl_custmon.so AND tbl_nif.bill='521513' AND tbl_incoming.shipment!=tbl_custmon.shipment
AND plannedGI!='0000-00-00'
GROUP BY tbl_custmon.so
ORDER BY tbl_custmon.so) AS grid
ORDER BY project ASC
クエリに「カウント」を含めないと、出力が表示されます。
それで、この問題のアイデアを教えてください。
本当にありがとう!
結論
「Max」関数をクエリに配置すると、自然な「groupby」が作成されます。
そこで、「Max」関数を他のSELECTフィールドとインラインにしました。
したがって、クエリは次のようになります
SELECT * FROM
(SELECT project,tbl_nif.POno,tbl_custmon.so, tbl_nif.matcode, tbl_nif.prodesc, MAX(plannedGI),
COUNT(CASE WHEN WEEK(plannedGI)+1=6 THEN 1 ELSE NULL END) as `week 6`,
COUNT(CASE WHEN WEEK(plannedGI)+1=2 THEN 1 ELSE NULL END) as `week 2`,
COUNT(CASE WHEN WEEK(plannedGI)+1=3 THEN 1 ELSE NULL END) as `week 3`,
COUNT(CASE WHEN WEEK(plannedGI)+1=4 THEN 1 ELSE NULL END) as `week 4`
FROM tbl_nif,tbl_custmon,tbl_incoming
WHERE tbl_nif.so=tbl_custmon.so AND tbl_nif.bill='521513' AND tbl_incoming.shipment!=tbl_custmon.shipment
AND plannedGI!='0000-00-00'
GROUP BY tbl_custmon.so
ORDER BY tbl_custmon.so) AS grid
ORDER BY project ASC
そして、出力には必要なデータが表示されます。
あなたに感謝します:)