SQL Datepart,将列乘以每周总和
SQL Datepart, multiply columns for a weekly sum
我发现如果我想每周查看数据,我必须使用 DATEPART
,我只是不确定如何将我的 SQL 查询放在一起。
到目前为止我已经明白了,这是一般的想法。
var querythis = "SELECT DATEPART(wk, (kg * sett * rep)) as weeklyvol FROM Test GROUP BY date, kg, sett, rep";
所以,kg
、sett
和 rep
是我的数据库列中的 3 个,还有 date
当然是 datetime
,那 3 个都是 integers
所以我想将它们乘以每周总数。
例如:
24 Jan 2017 - 100 x 10 x 3 = 3000
25 Jan 2017 - 100 x 5 x 5 = 2500
26 Jan 2017 - 150 x 3 x 3 = 1350
这将导致第 4 周 = 6850
GROUP BY date, kg, sett, rep";
我实际上不确定代码的上述行^部分是做什么的,我必须包括所有代码,否则我会出错。
目前,当我像下面这样写出来时,它没有错误,但它没有给我想要的结果,我什至不知道这些数字是从哪里来的,但至少不正确。
foreach (var c in db.Query(querythis))
{
<a>@c.weeklyvol</a><br />
}
有人知道怎么做吗?
我正在使用 SQL Server Compact,如果有区别的话。
您正在寻找这样的东西:
SELECT
DATEPART(wk, date),
sum(kg * sett * rep) as weeklyvol
FROM
Test
GROUP BY
DATEPART(wk, date)
这将从您的日期开始计算周数,并以此为依据进行分组,并将交易量总和显示为第二列。您可能希望在 datepart.
中使用 isowk
而不是 wk
如果您还需要年份,则使用 datepart(year...
无法正常工作,请参见 this link 示例。如果没有它,第 52、53 和 1 周的日期可能会出现错误的年份。
我发现如果我想每周查看数据,我必须使用 DATEPART
,我只是不确定如何将我的 SQL 查询放在一起。
到目前为止我已经明白了,这是一般的想法。
var querythis = "SELECT DATEPART(wk, (kg * sett * rep)) as weeklyvol FROM Test GROUP BY date, kg, sett, rep";
所以,kg
、sett
和 rep
是我的数据库列中的 3 个,还有 date
当然是 datetime
,那 3 个都是 integers
所以我想将它们乘以每周总数。
例如:
24 Jan 2017 - 100 x 10 x 3 = 3000
25 Jan 2017 - 100 x 5 x 5 = 2500
26 Jan 2017 - 150 x 3 x 3 = 1350
这将导致第 4 周 = 6850
GROUP BY date, kg, sett, rep";
我实际上不确定代码的上述行^部分是做什么的,我必须包括所有代码,否则我会出错。
目前,当我像下面这样写出来时,它没有错误,但它没有给我想要的结果,我什至不知道这些数字是从哪里来的,但至少不正确。
foreach (var c in db.Query(querythis))
{
<a>@c.weeklyvol</a><br />
}
有人知道怎么做吗?
我正在使用 SQL Server Compact,如果有区别的话。
您正在寻找这样的东西:
SELECT
DATEPART(wk, date),
sum(kg * sett * rep) as weeklyvol
FROM
Test
GROUP BY
DATEPART(wk, date)
这将从您的日期开始计算周数,并以此为依据进行分组,并将交易量总和显示为第二列。您可能希望在 datepart.
中使用isowk
而不是 wk
如果您还需要年份,则使用 datepart(year...
无法正常工作,请参见 this link 示例。如果没有它,第 52、53 和 1 周的日期可能会出现错误的年份。