如何只在1列中为select和in group中的多个列写入查询

时间:2012-06-30 06:43:11

标签: sql sql-server

我有一个查询

select t1.id,t1.col1,t1.col2,t2.col1,t2.col2,sum(t2.col3) as total
From table1 t1
join table2 t2 on t1.id=t2.id
where t1.col =@col
Group by t1.id

并且它给了我一个错误

  

t1.col1在选择列表中无效,因为它不包含在中   无论是聚合函数还是GROUP BY子句。

如何在group by子句中选择具有单列的多列?

2 个答案:

答案 0 :(得分:2)

只是你不能在Group By子句中选择一列含有一列的多列,除非你将它们放在某个组功能中,例如AVG,MIN,MAX等,或者在Group BY子句中添加所有列。

  select t1.id,t1.col1,t1.col2,t2.col1,t2.col2,sum(t2.col3) as total
   From table1 t1
   join table2 t2 on t1.id=t2.id
   where t1.col =@col
   Group by t1.id , ,t1.col1,t1.col2,t2.col1,t2.col2

答案 1 :(得分:0)

如果t1.col1,t1.col2,t2.col1,t2.col2是数字列,则可以使用min, max。 对于字符串列,您需要在groupby语句

中使用它们