私はグラフを作成しようとしていますが、データをChart JSと互換性のあるフォーマットに変換する際に問題があります。私は以下のようなグラフが好きです。動的データで苦闘
データはSQLから返され、次のようになります。
このデータは動的ので、私は手動でデータセットを作成することはできません変更されます。データはデータベースから動的に生成する必要があります。ここで
私はグラフを作成しようとしていますが、データをChart JSと互換性のあるフォーマットに変換する際に問題があります。私は以下のようなグラフが好きです。動的データで苦闘
データはSQLから返され、次のようになります。
このデータは動的ので、私は手動でデータセットを作成することはできません変更されます。データはデータベースから動的に生成する必要があります。ここで
は、次のスクリプトを動的に同じ数としてSQLに追加する必要があるバーの色が欠落していることに注意してくださいラベルと値は、XMLパス
の場合でSQL string concatenationメソッドを使用して動的に構築され、動的SQLスクリプトですラベル
したがって、バーラベルの色が格納されているテーブルで同様の連結方法を実行できます。単一文字変数として取得され、それが適切な場所
--create table reportData (year int, type varchar(10), qty int)
--insert into reportData select 2013, 'Type 1',1
--insert into reportData select 2014, 'Type 1',2
--insert into reportData select 2015, 'Type 3',1
--insert into reportData select 2016, 'Type 2',1
--insert into reportData select 2016, 'Type 3',2
--insert into reportData select 2016, 'Type 4',4
declare @sql nvarchar(max)
declare @labels nvarchar(max)
declare @measures nvarchar(max)
SELECT
@labels =
STUFF(
(
SELECT distinct
',"' + convert(nvarchar(4),[year]) + '"'
FROM reportData
FOR XML PATH('')
), 1, 1, ''
)
SELECT
@measures =
STUFF(
(
SELECT
',' + convert(nvarchar(4),qty)
FROM (
select
years.year, data.qty
from (
select distinct year from reportData
) years
left join (
select sum(qty) as qty, year from reportData group by year
) data on years.year = data.year
) Q
FOR XML PATH('')
), 1, 1, ''
)
set @sql = N'
var data = {
labels: ['+ @labels + '],
datasets: [
{
label: "My Graph",
backgroundColor: [
''rgba(255, 99, 132, 0.2)'',
''rgba(54, 162, 235, 0.2)'',
''rgba(255, 206, 86, 0.2)'',
''rgba(75, 192, 192, 0.2)'',
],
borderColor: [
''rgba(255,99,132,1)'',
''rgba(54, 162, 235, 1)'',
''rgba(255, 206, 86, 1)'',
''rgba(75, 192, 192, 1)'',
],
borderWidth: 1,
data: ['+ @measures +'],
}
]
};'
print @sql
アイデアありがとうございますが、私は動的SQLを使用したくないです。私は、その場でデータセットを構築するために、生データとC#またはJSのどちらかをSQLに返すことをお勧めしますか? – Tim
で@SQLに追加することができ、リストの後には、JSON形式のデータをしたいですか? – Eralper
_ "このデータは動的に変更されるため、手動でデータセットを作成することはできません。" _ - 詳細は何が動的に変更されるのでしょうか。その変更によりデータセットを作成できないのですか?列リストは静的に見えます。行リストと特定の値は、いつか変更されるはずです。さもなければ、静的な画像であり、グラフではありません。 –
私はhttp://www.chartjs.org/docs/#bar-chart-dataset-structureで棒グラフのchart.jsのドキュメントとサンプルを見ています。このソースをチェックしましたが、あなたが望むものを手に入れることができるか分かりません。 – Eralper