Я обнаружил, что мне нужно использовать DATEPART
, если я хочу просматривать данные еженедельно, я просто не уверен, как скомпоновать мой SQL-запрос.SQL Datepart, умножить столбцы на недельную сумму
До сих пор я получил это, что является общей идеей.
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";
Im на самом деле не уверен, что делает выше строка^часть кода, я должен был включать в себя все их или я получаю ошибки.
В настоящее время его ошибка свободна, когда я пишу ее следующим образом, но она не дает мне результата, который я хочу, я даже не знаю, из чего происходят цифры, но, по крайней мере, неверно.
foreach (var c in db.Query(querythis))
{
<a>@c.weeklyvol</a><br />
}
Кто-нибудь знает, как это сделать?
Я использую SQL Server Compact, если это имеет значение.
Прохладный, это определенно сделало трюк! Тем не менее, я вижу, что когда он меняет год, он только заказывает номер недели, а не дату, это то, что я могу решить? то есть, начиная с 52 недели 2016 года до 1-й недели 2017 года, он ставит результат недели 1 до 52-й недели! –
и да, 'isowk', кажется, рекомендуется в моей стране! –
Вы можете добавить еще один столбец за год и добавить его в группу. Самая большая проблема заключается в том, что нет никакой функции для получения правильного года для недель iso, потому что год не всегда правильный для недели 52/53/1. Существуют [примеры] (http://stackoverflow.com/questions/22829604/what-is-iso-year-in-sql-server), как создать для этого функцию. –