Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 05:00   #1
HellFosa
Новичок
Джуниор
 
Регистрация: 19.11.2012
Сообщений: 2
По умолчанию Высчитывание и подстановка нескольких дат в sql запрос

Ребят, есть SQL-запрос(дело происходит с MS SQL 2008R2 и MS Project Server 2010), который возвращает число.

Используются 4 параметра:

MSP_EpmResource.ResourceEmailAddres s - тут опознается пользователь, который зашел на сайт (чтобы для него считалось)
MSP_EpmTask.TaskPercentCompleted - процент выполнения задачи (чтобы считались задачи выполненные на 100%)
MSP_EpmAssignment.AssignmentActualS tartDate - дата начала отсчета
MSP_EpmAssignment.AssignmentActualF inishDate - дата окончания отсчета

Иными словами задается период, за который нужно выбрать все задачи, завершенные на 100% для определенного человека, потом посчитать сумму затрат по этим задачам и получить число (у нас это премия сотрудника).

В текущей реализации это делается с помощью 2х календарей и кнопки, после чего число выводится в текстбокс. Начальство не оценило, сказано идти по "iphone way", т.е при открытии страницы должно выводиться уже посчитанное число для текущего периода (с 17 числа предыдущего месяца по 16 число текущего месяца). Прикрутить это с onload не проблема. Проблема сделать так, чтобы даты автоматически подставлялись в запрос. К примеру сегодня 15.11, значит считать должен с 17.10 по 16.11. А если сегодня 26.11, значит должен считать с 17.11 по 16.12. Подскажите как сделать?

Вот код запроса

Цитата:
<script language="c#" runat="server">

protected void Button1_Click(object sender, EventArgs e)
{

string date = Calendar1.SelectedDate.ToString();
string date2 = Calendar2.SelectedDate.ToString();
string strConnection = "тут строка соединения";
SqlConnection ThisConnection = new SqlConnection(strConnection);
ThisConnection.Open();
SqlCommand thisCommand = ThisConnection.CreateCommand();
thisCommand.CommandText = "SELECT DISTINCT SUM(MSP_EpmTask.TaskCost) AS Expr1 FROM MSP_EpmAssignment INNER JOIN MSP_EpmTask ON MSP_EpmAssignment.TaskUID=MSP_EpmTa sk.TaskUID INNER JOIN MSP_EpmResource ON MSP_EpmAssignment.ResourceUID = MSP_EpmResource.ResourceUID WHERE (MSP_EpmResource.ResourceEmailAddre ss = '" + SPContext.Current.Web.CurrentUser.E mail + "') AND (MSP_EpmTask.TaskPercentCompleted = '100') AND (MSP_EpmAssignment.AssignmentActual StartDate >= @date) AND (MSP_EpmAssignment.AssignmentActual FinishDate <= @date2)";
SqlParameter StartDate = new SqlParameter("@date", date);
SqlParameter FinishDate = new SqlParameter("@date2", date2);
thisCommand.Parameters.Add(StartDat e);
thisCommand.Parameters.Add(FinishDa te);
SqlDataReader thisReader = thisCommand.ExecuteReader();
string res = string.Empty;
while (thisReader.Read())
{
res += thisReader["Expr1"];
}
thisReader.Close();
ThisConnection.Close();
textBoxnext.Text = res;
}
</script>
HellFosa вне форума Ответить с цитированием
Старый 19.11.2012, 07:16   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Как-то так.
Код:
DateTime dt = /*new DateTime (2012, 11, 15); */ DateTime.Now;
DateTime dt1 = dt;
DateTime dt2 = dt;
if (dt1.Day < 17)
{
    dt1 = dt1.AddMonths(-1);
}
else
{
    dt2 = dt2.AddMonths(1);
}
dt1 = new DateTime(dt1.Year, dt1.Month, 17);
dt2 = new DateTime(dt2.Year, dt2.Month, 16);
MessageBox.Show(dt1.ToString() + dt2.ToString());
phomm вне форума Ответить с цитированием
Старый 19.11.2012, 09:33   #3
HellFosa
Новичок
Джуниор
 
Регистрация: 19.11.2012
Сообщений: 2
По умолчанию

phomm

Спасибо мил человек
HellFosa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подстановка определенных сроков из списка в зависимости от количества дат alexsampler Microsoft Office Excel 4 06.06.2012 15:55
Подстановка переменной в запрос Pellegrino SQL, базы данных 0 13.10.2011 21:04
Sql запрос диапазона дат Maksimuz БД в Delphi 7 14.01.2011 23:31
SQL запрос в MYSQL для интервала дат slips SQL, базы данных 7 05.06.2010 21:41
Как организовать поиск интервала дат через SQL Selena Общие вопросы Delphi 1 14.03.2007 01:25