0


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

そして、出力には必要なデータが表示されます。
あなたに感謝します:)

4

0 に答える 0