[英]SQL: using DATEPART and Inner join
我逐漸熟悉DATEPART,在這種情況下,我需要一周的時間,以獲取每周的結果,依此類推。
我得到它與下面的查詢一起使用。
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)";
但是,這並不能真正完成我想要的一切,我也無法在該查詢中添加日期,因為它給了我錯誤。 像這樣...sum((rep * sett)) as reps, date FROM
^
上面的日期。 最后給我一些關於分組的錯誤。
但是我想在以下查詢中使用datepart(wk),任何想法如何做到這一點? (使用SQL Server Compact!)
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.