没有聚合函数就用group by ?

解决方案 »

  1.   

    select a.DealerID,a.AutoID,a.auto_price,a.auto_bj_date,b.AutoID,b.AutoBrand,b.AutoType,c.DealerID,c.user_name,c.pass_word,c.user_dw,c.user_dwj,c.user_main from AutoPrice a,autoinfo b,autodealer c where c.user_dwj like '%大连%' and a.dealerid = c.dealerid and a.autoid = b.autoid GROUP BY a.DealerID
    这应该是错的,select中的字段如果没有加聚合函数就得出现在group by 中
      

  2.   

    聚合函数不是你那样写的,
    select a.DealerID,sum(总数),avg(平均数) from AutoPrice a,autoinfo b,autodealer c where c.user_dwj like '%大连%' and a.dealerid = c.dealerid and a.autoid = b.autoid GROUP BY a.DealerID
    这才是聚合函数
      

  3.   

    select a.DealerID,sum(a.Dealerid),a.AutoID,a.auto_price,a.auto_bj_date,b.AutoID,b.AutoBrand,b.AutoType,c.DealerID,c.user_name,c.pass_word,c.user_dw,c.user_dwj,c.user_main from AutoPrice a,autoinfo b,autodealer c where c.user_dwj like '%大连国合%' and a.dealerid = c.dealerid and a.autoid = b.autoid GROUP BY a.DealerID
    我这样加的聚合函数!但是出错了---------------------------服务器: 消息 8120,级别 16,状态 1,行 1
    列 'a.AutoID' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'a.auto_price' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'a.auto_bj_date' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'b.AutoID' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'b.AutoBrand' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'b.AutoType' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'c.DealerID' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'c.user_name' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'c.pass_word' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'c.user_dw' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'c.user_dwj' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    服务器: 消息 8120,级别 16,状态 1,行 1
    列 'c.user_main' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
      

  4.   

    select 
    a.DealerID
    from 
    AutoPrice a 
    inner join autoinfo b on a.autoid = b.autoid
    inner join autodealer c a.dealerid = c.dealerid
    where 
    c.user_dwj like '%大连%' 
    GROUP BY a.DealerID
      

  5.   

    a.DealerID,a.AutoID,a.auto_price,a.auto_bj_date,b.AutoID,b.AutoBrand,b.AutoType,c.DealerID,c.user_name,c.pass_word,c.user_dw,c.user_dwj,c.user_main
    这些全部都要出来的话,需要在grpup by 中加上 group by a.DealerID,a.AutoID,a.auto_price,a.auto_bj_date,b.AutoID,b.AutoBrand,b.AutoType,c.DealerID,c.user_name,c.pass_word,c.user_dw,c.user_dwj,c.user_main
      

  6.   

    你需要选择所有的字段出来,但是还要按照DealerID聚合?
    DealerID=1的时候后面出现的AutoID,auto_price不可能只有一个的,所以你这样的思路是不对的
      

  7.   

    前面的字段除了Group by后面的,其他的每一个都要加聚合函数才行
      

  8.   

    要获得的列全部加到group by 后面
      

  9.   

    select a.DealerID,a.AutoID,a.auto_price,a.auto_bj_date,b.AutoID,b.AutoBrand,b.AutoType,c.DealerID,c.user_name,c.pass_word,c.user_dw,c.user_dwj,c.user_main from AutoPrice a,autoinfo b,autodealer c where c.user_dwj like '%大连%' and a.dealerid = c.dealerid and a.autoid = b.autoid GROUP BY a.DealerID,a.AutoID,a.auto_price,a.auto_bj_date,b.AutoID,b.AutoBrand,b.AutoType,c.DealerID,c.user_name,c.pass_word,c.user_dw,c.user_dwj,c.user_main
      

  10.   

    1.没有聚合函数就用group by ?
    2.要获得的列全部加到group by 后面
    select a.DealerID,
    a.AutoID,
    sum(a.auto_price) as price,
    a.auto_bj_date,
    b.AutoID,
    b.AutoBrand,
    b.AutoType,
    c.DealerID,
    c.user_name,
    c.pass_word,
    c.user_dw,
    c.user_dwj,
    c.user_main
     from AutoPrice a,autoinfo b,autodealer c 
    where c.user_dwj like '%大连%' 
    and a.dealerid = c.dealerid 
    and a.autoid = b.autoid 
    GROUP BY a.DealerID,
    a.auto_bj_date,
    b.AutoID,
    b.AutoBrand,
    b.AutoType,
    c.DealerID,
    c.user_name,
    c.pass_word,
    c.user_dw,
    c.user_dwj,
    c.user_main
    感觉有点怪怪,还是把需求说出来把