2017-09-21 14 views
-3

同じタイムスタンプの行が複数あるため、一部のクエリで問題が発生しています。SQL Server:内部結合テーブルから複数の行を1行に変換する

それは、同じデータだが、彼らは異なるテーブルからなので、それは2つの以上の行を作成し、私はすべてを1行にこれをスキッシュしたいので、私は結果が

| R | 2017-09-21 08:52:18.000 | 120 | 255 | 0 | 0 | 0 | 0 | 17203200 | 

になりたい

| 1 | 2017-09-21 08:52:18.000 | 120 | 255 | 0 | 0 | 0 | 0 |   | 
| 2 | 2017-09-21 08:52:18.000 |  |  | | | | | 17203200 |  

値があり、両方に値がある場合、私は最高の値を保持したい。

+0

代わりに第二の最初の行を選択するあなたの根拠は何を試すことができますか?テーブル構造、列名とは何ですか...ここで質問する方法についての良い情報です。 – Eric

+0

文字列連結のように動作したいと思うようです。 STUFFを使用すると良い方法かもしれませんが、最後の列の固有の必要性を利用する必要がありますか、最後の列に最大値を表示する必要がありますか、 ? –

+0

定義:「最高値を保持したい」最大グループは、col 3の2番目のレコードが130、col4の2番目のレコードが200のミックス/マッチング値の場合、バグが発生するようです。これがあなたが望むものだと確信していますか?または両方のレコードにタイムスタンプだけが入力されているために発生しないでしょうか? – xQbert

答えて

3

あなたはそれ

Declare @Table table (
Column1 int  
,Column2 datetime 
,Column3 int 
,Column4 int 
,Column5 int 
,Column6 int 
,Column7 int 
,Column8 int 
,Column9 int 
,Column10 int 
) 


INSERT @Table Values 
(1,'2017-09-21 08:52:18.000',120,255,0,0,0,0, NULL,NULL      ) 
,(2,'2017-09-21 08:52:18.000',NULL ,NULL , NULL, NULL, NULL, NULL,17203200,NULL) 


SELECT 
Column2 
,Max(Isnull(Column3 ,0)) Column3 
,Max(Isnull(Column4 ,0)) Column4 
,Max(Isnull(Column5 ,0)) Column5 
,Max(Isnull(Column6 ,0)) Column6 
,Max(Isnull(Column7 ,0)) Column7 
,Max(Isnull(Column8 ,0)) Column8 
,Max(Isnull(Column9 ,0)) Column9 
,Max(Isnull(Column10,0)) Column10 

FROM 
    @Table 
Group By 
Column2 
関連する問題