2017-09-09 3 views
1

私は数年前に行列を作りましたが、何らかの理由で今月が始まって以来、これはかなり奇妙です:1、10、11、12、3、4、5 ...月の番号を間違って並べ替えることを報告してください

問題:

The problem

ソートがSQL Serverで結構です、とグラフが表示されているデータが正しいです。それは私が他の列で試してみる前に働いていましたが、今はそれがうんざりしています。これは、次のいソースとしてDataSetを使用しています:

その順序でのDataTableに記載されているのInt32とのInt32として BrojNarudzbi(注文数)、などのInt32として

Godina(年)、 Mjesec(月)。

begin 
Select Count(NarudzbeID) as 'BrojNarudzbi', Month(N.DatumNarudzbe) as 'Mjesec', Year(N.DatumNarudzbe) as 'Godina' 
from Narudzbe as N 
Group by Year(N.DatumNarudzbe), Month(N.DatumNarudzbe) 
Order by Year(N.DatumNarudzbe), Month(N.DatumNarudzbe) 

を再度、ちょうど数ヶ月はいくつかの奇妙な理由で正しくソートされていないされて表示されていたデータを:この手順では、それは場合に役立ちます私は、からレコードを取得しています場所です。

+0

数字を数字ではなく文字列として並べ替えると思います。 1、12、3はそのように動作します。 –

+0

文字列があるかのようにアルファベット順です。 1桁の月の前に '0'を追加してください。 – Horaciux

+0

なぜこの投稿にタグがC#であるのですか? c#コードはありません。あなたが表示しているのは、SQLのクエリ結果だけです。では何が効いていないのですか? – jdweng

答えて

2

この列のデータセットのデータ型を確認します。

文字列があるかのようにアルファベット順です。一桁の月の前に'0'を追加してください。

begin 
Select Count(NarudzbeID) as 'BrojNarudzbi', 
    right('0'+cast(Month(N.DatumNarudzbe) as varchar(2)),2) as 'Mjesec', 
    Year(N.DatumNarudzbe) as 'Godina' 
from Narudzbe as N 
Group by Year(N.DatumNarudzbe), Month(N.DatumNarudzbe) 
Order by Year(N.DatumNarudzbe), Month(N.DatumNarudzbe) 
+0

どのようにして10日、11日、12月に行くのですか?私はあなたが何年も何もしなかったので、すべて0に変更しましたが、今月は1〜9になります。 – WhatAmIDoing

+0

私の編集を参照してください。 – Horaciux

+0

の代わりに右を使用してください。データセット – Horaciux

関連する問題