У меня есть диаграмма привязки данных, запущенная из следующего запроса MSSQL -
"SELECT dateinvoiced AS Date, (SELECT SUM(value) FROM jobs WHERE dateinvoiced >= '" +
new DateTime(year, month, 1).ToString("yyyy-MM-dd") + "' AND dateinvoiced <=
j.dateinvoiced)/100 AS Revenue FROM jobs j WHERE dateinvoiced >= '" + new
DateTime(year, month, 1).ToString("yyyy-MM-dd") + "' AND dateinvoiced <= '" + new
DateTime(year, month, daysInMonth).ToString("yyyy-MM-dd") + "' GROUP BY dateinvoiced"
(Пожалуйста, прости, что я представляю себе странный способ обработки дат, длинную историю, но я скоро их поменяю.)
Запрос получает совокупную сумму денег, потраченных на работу, которую бизнес пользователя выполнил за день в течение календарного месяца. Сам график сравнивает это с целевым значением для месяца, поэтому пользователь может видеть прогресс в достижении своей ежемесячной цели. С этой стороны все работает нормально, и запрос тоже. Проблема наступает в начале месяца.
Линия, нарисованная из вышеприведенного запроса, очевидно, начинается с первой точки данных. Если пользователь не взял денег, скажем, до середины месяца, а затем принял большое значение, на графике не будет проведено никакой линии, поскольку присутствует только одна точка. Так будет до тех пор, пока пользователь не возьмет деньги в более поздний день, после чего они увидят линию.
Мне бы хотелось, чтобы на графике всегда была линия, которую можно увидеть с начала координат, даже если у пользователя есть данные только за один день.
Единственный способ заставить это работать самому, это проверить, есть ли данные за 1-й день до привязки к данным, и не просто вставить запись о продаже с нулевой стоимостью в таблицу. Я уверен, вы понимаете, почему это не приемлемо. Есть ли способ вручную добавить точку на таблицу данных? Я пытался и не могу этого сделать. Если это не удастся, есть ли способ изменить запрос SQL, чтобы получить значение для каждой даты, даже если данные для них отсутствуют? Или какие-нибудь другие методы вообще?
Спасибо.