2016-09-27 8 views
1

のデータからグラフを作成する私は、ストアドプロシージャおよびMicrosoft SQL Server Management StudioのT-SQLにかなり新しいです。T-SQL - ビュー

私は自分のデータベースと呼ばれるBodyBasicsでビューを作成しました。このビューには、BackAngleという列があります。 BackAngleの列には、ユーザーがどの角度で曲がっているのかがリストされています。私が望む何

| ID | Timestamp | RecordingId | BodyNumber | BackAngle | 

:ビューは次のようになります

173,10786534157, 147,423570266, 170,196359990068, 148,774131860277, 153,439316876929, 147,063469480619, 173,861485242977, 172,1319088368, 145,416983331938, 163,02645970309, 147,65814822779, 146,212510299859, 173,769456580658 

:データ型は、このビューの列で見つかったいくつかの例の値は浮動小数点数で、90から180の範囲とすることができる

ビューからBackAngleデータを時系列順に選択し、データをグラフにプロットすることです。

私が試してみましたクエリは次のとおりです。 http://sqlmag.com/t-sql/generating-charts-and-drawings-sql-server-management-studio

:私はこの記事から幾何学:: STGeomFromText構文を持っ

Msg 102, Level 15, State 1, Line 7 
Incorrect syntax near 'Backangle'. 
Msg 102, Level 15, State 1, Line 9 
Incorrect syntax near '('. 

GO 
DECLARE @BackAngle TABLE(Backangle FLOAT); 

INSERT @BackAngle(Backangle) SELECT dbo.ViewBodies.BackAngle FROM dbo.ViewBodies 
WHERE dbo.ViewBodies.BackAngle IS NOT NULL 
ORDER BY Timestamp; 
SELECT geometry::STGeomFromText('LINESTRING(' + @BackAngle(Backangle) + ')'); 
GO 

私はこのコードから取得エラーです

誰かが私のコードで、これはこれを行うための正しい方法であるかどうか間違っているものを指摘することはできますか?何か別の選択肢はありますか?

+0

「BackAngle」にある値の例を挙げてください。最初に宣言された表を埋める必要はありません。あなただけ... *直接* – Shnugo

+0

いくつかの例を関数を呼び出すことができます:173,10786534157、147,423570266、170,196359990068、148,774131860277、153,439316876929、147,063469480619、173,861485242977、172,1319088368、145、 416983331938、163,02645970309は、 146,212510299859 147,65814822779、それが働いた173,769456580658 – Gogoku7

答えて

1

あなたがLINESTRINGでそれを使用する変数をテキスト文字列を作る必要があり、一時テーブルを必要としません。目盛りとして、行番号(1,2,3,4、...)を使用できます。

DECLARE @WKT AS VARCHAR(8000); 
SET @WKT = 
       STUFF(
        (SELECT ',' 
          + CAST(ROW_NUMBER() 
            OVER (ORDER BY [timestamp]) AS VARCHAR(100)) 
          + ' ' + CAST(BackAngle AS VARCHAR(30)) 
        FROM ViewBodies 
        WHERE BackAngle IS NOT NULL 
        ORDER BY [timestamp] 
        FOR XML PATH('')), 1, 1, ''); 

SELECT geometry::STGeomFromText('LINESTRING(' + @WKT + ')', 0); 
+0

、ありがとうございました。 – Gogoku7