2014-09-29 2 views
0

Итак, я сделал график в SSRS 2008 R2, и по какой-либо причине метки оси отказываются отображаться как значения даты и вместо этого отображаются как число месяца, который они представляют (например, январь отображается как «1», февраль - «2» и т. д.). Я столкнулся с различными свойствами графика, от «Параметры оси» до вкладки «Число». К сожалению, до сих пор ничего не получилось. Только одно изменение было внесено в график, и это была сортировка в группе категорий, чтобы график мог извлекать данные из разных лет. Это код, который дает мне данные для графика:Вопросы метки метки оси SSRS

SELECT Year = DATEPART(YEAR, date1), 
date1 = DATEPART(MONTH, date1), 
sum(qty) as TotalQTY 
FROM TableMain 
WHERE Tablemain.date1 between @startdate and @enddate and Tablemain.fillerparam in(@fillerparam) and Tablemain.filler2 in (@filler2) 
GROUP BY DATEPART(MONTH, date1), DATEPART(YEAR, date1) 

Спасибо.

ответ

0

Ваш запрос может быть изменен, чтобы указать название месяца. Вы можете использовать имя, а не номер при привязке к диаграмме, чтобы ось могла отображать имя месяца, а не номер месяца.

Вот пример того, как получить название месяца:

SELECT Year = DATEPART(YEAR, date1), 
date1 = DATEPART(MONTH, date1), 
SUM(qty) as TotalQTY, 
CASE -- Case statement translates the integer of the month into the name of the month 
    WHEN DATEPART(MONTH, date1) = 1 THEN 'January' 
    WHEN DATEPART(MONTH, date1) = 2 THEN 'February' 
    WHEN DATEPART(MONTH, date1) = 3 THEN 'March' 
    WHEN DATEPART(MONTH, date1) = 4 THEN 'April' 
    WHEN DATEPART(MONTH, date1) = 5 THEN 'May' 
    WHEN DATEPART(MONTH, date1) = 6 THEN 'June' 
    WHEN DATEPART(MONTH, date1) = 7 THEN 'July' 
    WHEN DATEPART(MONTH, date1) = 8 THEN 'August' 
    WHEN DATEPART(MONTH, date1) = 9 THEN 'September' 
    WHEN DATEPART(MONTH, date1) = 10 THEN 'October' 
    WHEN DATEPART(MONTH, date1) = 11 THEN 'November' 
    WHEN DATEPART(MONTH, date1) = 12 THEN 'December' 
    ELSE '' 
END AS 'name_of_month' 
FROM TableMain 
WHERE Tablemain.date1 between @startdate and @enddate and Tablemain.fillerparam in(@fillerparam) and Tablemain.filler2 in (@filler2) 
GROUP BY DATEPART(MONTH, date1), DATEPART(YEAR, date1), 
CASE -- Add the case statement to the GroupBy so that it still groups as expected 
    WHEN DATEPART(MONTH, date1) = 1 THEN 'January' 
    WHEN DATEPART(MONTH, date1) = 2 THEN 'February' 
    WHEN DATEPART(MONTH, date1) = 3 THEN 'March' 
    WHEN DATEPART(MONTH, date1) = 4 THEN 'April' 
    WHEN DATEPART(MONTH, date1) = 5 THEN 'May' 
    WHEN DATEPART(MONTH, date1) = 6 THEN 'June' 
    WHEN DATEPART(MONTH, date1) = 7 THEN 'July' 
    WHEN DATEPART(MONTH, date1) = 8 THEN 'August' 
    WHEN DATEPART(MONTH, date1) = 9 THEN 'September' 
    WHEN DATEPART(MONTH, date1) = 10 THEN 'October' 
    WHEN DATEPART(MONTH, date1) = 11 THEN 'November' 
    WHEN DATEPART(MONTH, date1) = 12 THEN 'December' 
    ELSE '' 
END 
    ORDER BY date1 -- Added order by to make sure that records are sorted in the report by date and not by alphabetic name of month 

Вы также можете проверить этот пост способ получить название месяца без использования оператора выбора: Convert Month Number to Month Name Function in SQL

+0

Спасибо! Я не думал использовать случай. Единственной частью, которая дала проблему, была «AS» name_of_month »после второй« CASE », но, кроме этого, она работает безупречно. – PrincessTrevor

+0

Пример обновлен, чтобы удалить 'AS 'name_of_month'' из второго' CASE'. –