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”函数放在查询上可以自然地“分组”。
所以我将“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