我有两张桌子。
表1有以下数据
Id1 Name Comments
--------------------
1 abc hgdhg
2 xyz mnoph
3 ysdfr jkljk
4 asdf iiuoo
5 pqrs liuoo
表2有以下数据
Id2 Id1 count date
-------------------------------
1 1 18 11/16/2005
2 1 1 11/15/2005
3 1 4 11/25/2005
4 2 4 11/22/2005
5 3 8 11/05/2005
6 3 3 11/30/2005
7 4 2 11/29/2005
8 3 0 11/04/2005
9 2 5 11/02/2005
10 3 9 11/22/2005
11 2 15 11/10/2005
12 5 12 11/19/2005
我希望将输出作为名称,评论,自2005年11月10日以来所有计数的总和返回
我正在尝试以下查询(条件为out out date)
select
Name, Comments, sum(count)
from
Table1 T1
join
Table2 T2 on T1.Id1 = T2.Id1
group by
ID1
但是它正在抛出错误
名称在选择列表中无效,因为它不包含在聚合函数或Group by子句中。
任何人都可以帮我查询(条件的日期)吗?这有什么问题?
提前致谢
答案 0 :(得分:1)
没有聚合函数的select语句中的每一列都需要按句子分组以防止聚合错误,关于限制日期,使用where子句来定义条件,如前面的显示。
select
Name, Comments, sum(count)
from
Table1 T1
join
Table2 T2 on T1.Id1 = T2.Id1
where
date >= '2005-11-10 00:00:00'
group by
Name, Comments
答案 1 :(得分:1)
您必须添加聚合函数中未包含的任何列,并使用where
过滤结果:
select Name,
Comments,
sum(count)
from Table1 T1 join Table2 T2 on T1.Id1 = T2.Id1
where T2.[date] >= '11/10/2005'
group by Name, Comments
答案 2 :(得分:1)
您可以使用以下查询
SELECT T1.Name ,
T1.Comments ,
SUM(T2.[count]) AS [count]
FROM Table1 T1
INNER JOIN Table2 T2 ON T1.Id1 = T2.Id1
WHERE CAST(T2.[date] AS DATE) >= CAST('11/10/2005' AS DATE)
GROUP BY T1.Name ,
T1.Comments