1

У меня есть небольшой вопрос о SQL Server.Месяц мудрый отображение данных в SQL Server

У меня есть таблица с данными выборки, как это:

id | month | stat | count 
--------------------------------- 
1 |  1 | admit | 7 
2 |  8 | admit | 47 
1 |  7 | admit | 28 
2 |  9 | admit | 11 
3 | 12 | dischr | 4 
4 | 10 | openc | 5 
1 | 11 | admit | 1 
2 |  6 | admit | 5 
2 |  4 | admit | 8 
1 |  3 | dischr | 10 
2 |  2 | admit | 30 
3 |  5 | dischr | 20 
1 |  8 | admit | 13 
3 |  8 | dischr | 1 
4 |  9 | admit | 30 
2 | 10 | admit | 20 
3 | 10 | deschr | 20 

Основываясь на этом, когда месяц = ​​1, то январь и когда месяц = ​​2, то февраль весь путь до 12, на основании этого условия я получил выходной как показано ниже.

Month |id |Admit |Dischr |OpenC 
August |1 |13 |NULL |NULL 
January |1 |7 |NULL |NULL 
July |1 |28 |NULL |NULL 
March |1 |NULL |10 |NULL 
November|1 |1 |NULL |NULL 
April |2 |8 |NULL |NULL 
August |2 |47 |NULL |NULL 
February|2 |30 |NULL |NULL 
June |2 |5 |NULL |NULL 
October 2 |20 |NULL |NULL 
September|2 |11 |NULL |NULL 
August |3 |NULL |1 |NULL 
December|3 |NULL |4 |NULL 
May  |3 |NULL |20 |NULL 
October |3 |NULL |NULL |NULL 
October |4 |NULL |NULL |5 
September|4 |30 |NULL |NULL 

, но я хочу выход как месяц мудрой надлежащий порядок и выход выглядеть, как показано ниже

Month |id |Admit |Dischr |OpenC 
January |1 |7 |NULL |NULL 
February|2 |30 |NULL |NULL 
March |1 |NULL |10 |NULL 
April |2 |8 |NULL |NULL 
May  |3 |NULL |20 |NULL 
June |2 |5 |NULL |NULL 
July |1 |28 |NULL |NULL 
August |1 |13 |NULL |NULL 
August |2 |47 |NULL |NULL 
August |3 |NULL |1 |NULL 
September|2 |11 |NULL |NULL 
September|4 |30 |NULL |NULL 
October |2 |20 |NULL |NULL 
October |3 |NULL |NULL |NULL 
October |4 |NULL |NULL |5 
November|1 |1 |NULL |NULL 
December|3 |NULL |4 |NULL 

Скажите, пожалуйста, запрос, как решить эту проблему в SQL Server.

ответ

0

Добавить order by в ваш запрос, чтобы ваши данные были заказаны в соответствии с вашими требованиями. Что-то вроде этого

SELECT .... 
FROM yourTable 
ORDER BY Month, Id 
2

Вы должны convert в month столбец date и использовать его в order by с ID

SELECT [Month], 
     id, 
     Admit, 
     Dischr, 
     OpenC 
FROM yourTable 
ORDER BY Cast([Month] + '01 2010' AS DATE),Id 

или

order by DATEPART(MM,[Month]+ ' 01 2010'),Id 

Примечание:'1 2010' в гипсе это просто статическое значение до convertmonth varchar column to date

+0

Это должен быть точный ответ на то, что вы ищете @ user3457912 –

+0

спасибо. его рабочий штраф. – user3457912

Смежные вопросы