Sql 嗯,最小。。。或者将其分组在“GROUPBY子句”中。抱歉,如果您不懂我的英语,它不是我的第一语言。因此,在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式。[Select子句=,date],我对此不太了解,但当我从一开始就使用这个查询时,没有
Sql 嗯,最小。。。或者将其分组在“GROUPBY子句”中。抱歉,如果您不懂我的英语,它不是我的第一语言。因此,在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式。[Select子句=,date],我对此不太了解,但当我从一开始就使用这个查询时,没有,sql,sql-server,inner-join,datepart,Sql,Sql Server,Inner Join,Datepart,嗯,最小。。。或者将其分组在“GROUPBY子句”中。抱歉,如果您不懂我的英语,它不是我的第一语言。因此,在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式。[Select子句=,date],我对此不太了解,但当我从一开始就使用这个查询时,没有datepart内容,需要内部联接是因为我无法将MAX(..)与SUM(..)结合起来因为MAX只会给出一个结果,SUM会给出更多的结果,因为有时数据库中有多行具有相同的日期!问题是我必须按表达式分组,而不是按别名分组,我将使用正确的查询对其进
嗯,最小。。。或者将其分组在“GROUPBY子句”中。抱歉,如果您不懂我的英语,它不是我的第一语言。因此,
在聚合和分组表达式中,SELECT子句只能包含聚合和分组表达式。[Select子句=,date]
,我对此不太了解,但当我从一开始就使用这个查询时,没有datepart内容,需要内部联接是因为我无法将MAX(..)与SUM(..)结合起来因为MAX只会给出一个结果,SUM会给出更多的结果,因为有时数据库中有多行具有相同的日期!问题是我必须按表达式分组,而不是按别名分组,我将使用正确的查询对其进行编辑。而且,因为sum和max都是聚合操作数,所以它们可以一起工作。哇,真是太酷了!也许我之前的问题是因为我没有使用datepart时按日期分组,或者它仍然可以同时使用max和sum?您发布的第二个查询有一个问题,即您没有按“datepart(wk,date)”进行搜索,因此这会导致两个不同的计数结果。同样,在第二个查询中,您是按天分组的,而不是按要求按周分组的。使用摸索操作数时最重要的一点是,要返回的每个变量的结果数必须相同,使用摸索操作数,如max、count、min。。。或者将其分组在“GROUPBY子句”中。对不起,我的英语如果你不懂的话,那不是我的第一语言。
var querytest = "SELECT DATEPART(wk, date), sum((kg * rep * sett)) as weight,
sum(kg / max * rep * sett) as avg, sum((rep * sett)) as reps
FROM Test WHERE date between @0 and @1 AND exercise < 4 GROUP BY DATEPART(wk, date)";
^
var querythiss = "SELECT DATEPART(wk, date), SUM(kg * rep * sett) as weight, SUM(kg / max * rep * sett) as avg, SUM(rep * sett) as reps, " +
" t.date, pk.peak FROM Test t INNER JOIN (SELECT MAX(kg / max) as peak, date FROM Test WHERE date BETWEEN @0 AND " +
" @1 AND exercise < 4 group by date) as pk on t.date = pk.date WHERE t.date BETWEEN @0 AND @1 AND exercise < 4 GROUP " +
"BY t.date, pk.peak";
SELECT DATEPART(wk, date),
SUM(kg * rep * sett) as weight,
SUM(kg / max * rep * sett) as avg,
SUM(rep * sett) as reps,
t.date, pk.peak
FROM Test t INNER JOIN
(
SELECT MAX(kg / max) as peak, date
FROM Test
WHERE date BETWEEN @0 AND @1
AND exercise < 4
GROUP BY date
) as pk on t.date = pk.date
WHERE t.date BETWEEN @0 AND @1 AND exercise < 4
GROUP BY t.date, pk.peak
SELECT pk.dateWeek,
SUM(kg * rep * sett) as weight,
SUM(kg / max * rep * sett) as avg,
SUM(rep * sett) as reps,
pk.peak
FROM Test t
INNER JOIN
(
SELECT MAX(kg / max) as peak, DATEPART(wk, date) as dateWeek
FROM Test
WHERE date BETWEEN @0 AND @1
AND exercise < 4
GROUP BY DATEPART(wk, date)
) as pk on DATEPART(wk, t.date) = pk.dateWeek
WHERE date BETWEEN @0 AND @1
AND exercise < 4
GROUP BY pk.dateWeek, pk.peak
SELECT DATEPART(wk, date) as wknumber, sum((kg * rep * sett)) as weight,
sum(kg / max * rep * sett) as avg, sum((rep * sett)) as reps,
max(kg / max) as peak
FROM Test WHERE date between @0 and @1 AND exercise < 4 GROUP BY DATEPART(wk, date)