group by子句不起作用

时间:2015-12-11 09:38:33

标签: sql-server

SELECT 
    dm.DISTRICT_NAME ,      
    od.REGULAR_WORKERS_COUNT,
    od.DAILY_OR_CASUAL_WORKERS_COUNT,
    od.CONTRACT_WORKERS_COUNT,
    od.TOTAL_COUNT
FROM
    ORG_DETAILS od with (NOLOCK)
INNER JOIN 
    DISTRICT_MASTER dm with (NOLOCK) ON od.DISTRICT_ID = dm.DISTRICT_ID
GROUP BY
    dm.district_name

我有这个代码,我希望用zone_name对表进行分组。我收到了一个错误。

错误讯息:

  

列'ORG_DETAILS.REGULAR_WORKERS_COUNT'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

2 个答案:

答案 0 :(得分:0)

你应该试试这个: -

SELECT 
    dm.DISTRICT_NAME ,      
    COUNT(od.REGULAR_WORKERS_COUNT),
    COUNT(od.DAILY_OR_CASUAL_WORKERS_COUNT),
    COUNT(od.CONTRACT_WORKERS_COUNT),
    COUNT(od.TOTAL_COUNT)
FROM 
    ORG_DETAILS od with (NOLOCK)
INNER JOIN 
    DISTRICT_MASTER dm with (NOLOCK) ON od.DISTRICT_ID = dm.DISTRICT_ID
GROUP BY 
    dm.district_name

答案 1 :(得分:0)

SELECT 
    dm.DISTRICT_NAME ,      
    sum(od.REGULAR_WORKERS_COUNT),
    sum(od.DAILY_OR_CASUAL_WORKERS_COUNT),
    sum(od.CONTRACT_WORKERS_COUNT),
    sum(od.TOTAL_COUNT)
FROM 
    ORG_DETAILS od with (NOLOCK)
INNER JOIN 
    DISTRICT_MASTER dm with (NOLOCK) ON od.DISTRICT_ID = dm.DISTRICT_ID
GROUP BY 
    dm.district_name