2017-07-11 7 views
1

を結果 enter image description hereSQLクエリは、私はSQLに新しいです

を撃ち、以下の私のバックエンドのクエリ結果である画面の下のあたりとして、あなたは値を取得するには、私を助けてくださいすることができます。

enter image description here 例として、DEGが0の場合、対応する値(高さ5)、すなわち(0.91、-0.29、-1.78、-2.05など)を取得する必要があります。同様に、スクリーンショットL02Kj.pngに従って値をグループ化して表示する必要があります。詳細情報が必要な場合はお知らせください

+6

プリヤ、stackoverflowのは、無料のコードの書き込みサービスではありません。あなたは自分自身に何か努力をしていることを示す必要があります。これまでに何を試しましたか?あなたが抱えている特定の側面はありますか? – Jacobm001

+0

また、コードのスクリーンショットを投稿しないでください。彼らは私たちが働くことが非常に困難です。あなたの質問を編集する際には、マークダウン機能と便利なエディタボタンが用意されています。それらを使用してください。 – Jacobm001

+0

残念ですが、私はDEGカラムのすべての '0'をソートする必要があります。私は以下のクエリを使用しましたselect * from tableName ENGINE_ID = 1950 AND CYLINDER_NO = 1 ORDER BY CAST(LEVEL_NO AS INT)は、 – priya

答えて

-1

あなたが望むものを得るには、以下のクエリを使用できます。 テーブルがyourtableという名前のテーブルであると仮定すると、以下のクエリで結果が得られます。

select * 
from 
(
    select 
     deg+cast(angles_col_increment as decimal(10,2))-10 as deg, 
     height, 
     angle_value 
    from 
    (
     select 
      height, 
      deg, 
      [col_1] as [10], 
      [col_2] as [20], 
      [col_3] as [30], 
      [col_4] as [40], 
      [col_5] as [50], 
      [col_6] as [60], 
      [col_7] as [70], 
      [col_8] as [80] 
     from yourtable 
    )s 
    unpivot 
    (
    angle_value for angles_col_increment in 
     (
     [10],[20],[30],[40], 
     [50],[60],[70],[80] 
     ) 
    )u 
)s 
pivot 
(
    max(angle_value) for height in 
    (
     [5],[15],[25],[30.7] 
    ) 
)p 

See live demo

説明:

我々は最初のステップでデータをアンピボットし、また後度カラムに追加された列からの代表的な増分角度値を、撮影しましたステップとしての値。 次のステップでは、希望の結果を得るために度を中心に高さの欄をピボットしました。

これらの角度/高さを中心にハードコーディングを削除する必要がある場合は、動的ピボット/アンピボットを検索してください。これについては、SOにはたくさんの質問があります。

+0

ダウン投票者、ダウンワードの理由を説明してください。 – DhruvJoshi

+0

Druvに感謝します。私はそれをできるだけ早く試してみましょう。 – priya

+0

@priyaお返事ありがとうございます。それが動作しない場合私に知らせる – DhruvJoshi

0

何がしたいことは、ここ...ダイナミックピボットであなたのデータを使用して、基本的な例である(一部の列)

create table #TempTable (HEIGHT int, DEG int, COL_1 decimal(3,2)) 

insert into #TempTable 
values 
(5,0,0.91), 
(15,0,-0.29), 
(25,0,-1.78), 
(5,160,3.17), 
(15,160,1.15) 


DECLARE @DynamicPivotQuery AS NVARCHAR(MAX) 
DECLARE @ColumnName AS NVARCHAR(MAX) 

--Get distinct values of the PIVOT Column 
SELECT @ColumnName= ISNULL(@ColumnName + ',','') 
     + QUOTENAME(Height) 
FROM (SELECT DISTINCT Height as Height FROM #TempTable) AS Height 

--Prepare the PIVOT query using the dynamic 
SET @DynamicPivotQuery = 
    N'SELECT DEG as Angle, ' + @ColumnName + ' 
    FROM #TempTable 
    PIVOT(SUM(COL_1) 
      FOR Height IN (' + @ColumnName + ')) AS PVTTable' 
--Execute the Dynamic Pivot Query 
EXEC sp_executesql @DynamicPivotQuery 


drop table #TempTable 
関連する問題