2017-04-26 22 views
0

これの背後にあるロジックは同じです。同じ位置でSer_requestの数字が同じであれば、Maxの "Down time before Power"の行を考えてみましょう。更新する必要がある行は、私は3つの新しい列調整]開始日を作成する必要があり、調整]終了日、調整] DC電源とrepective列他の列と同じ値を更新する方法は?

からデータを挿入する最小値

列名のIDです

  • downtime_start =調整]開始日

    -downtime_end =のADJ終了日

    -power_before_downtime =調整] DC電源

私はそれをやってみましたが、同じ値をグループ化することで、最初の行を見つけることができませんでした。

私は、SQL Server 2012の

を、これは私がこれまで試してみました何をされて使用しています:

select location,downtime_start , count(*) 
from dbo.TB1 
group by location,downtime_start , count(*) 
having count(*)>1 

このクエリの後、私はTB1の結果を取得し、私は知らないどのようにグループ化をすると挿入それぞれの列に値を入力します。

任意のヘルプは

を高く評価され、出力テーブルは以下のようにする必要がありますあなたの

ID | location | downtime_start  | downtime_end   | power_before_downtime | power_after_downtime | creation_time  | end_time   | ser_request 
1 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16     | 13.67    | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003 
2 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16     | 13.67    | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003 
3 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16     | 13.67    | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003 

に感謝:

ID | location | downtime_start  | downtime_end   | power_before_downtime| power_after_downtime| creation_time  | end_time 
     |ser_request | Adj Start date  | Adj end date   | Adj DC power 

1 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16    | 13.67    |3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM| 0003  | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM |  14.16 

2 | xyz.a | 3/8/2017 2:00:00 PM | 3/10/2017 8:00:00 AM | 14.16 

| 13.67 | 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003
| 0 | 0 | 0

3 | xyz.a | 3/8/2017 2:00:00 PM| 3/10/2017 8:00:00 AM | 14.16 

| 13.67 3/8/2017 3:25:37 PM | 3/8/2017 6:41:59 PM | 0003 | 0 | 0 |あなたがデータを選択する必要がある場合は0

+0

あなたはMySQLやMS SQL Serverを使用しているでしょうか? (関連していない製品にはタグを付けないでください) – jarlh

+1

その写真の小さなテキストを読み取ることができません。 (ここではほとんどの人が画像ではなく書式設定されたテキストを希望しています...) – jarlh

+0

私はMS SQL 2010を使用しています –

答えて

1
UPDATE T 
SET 
[Adj Start date] = downtime_start, 
[Adj end date] = downtime_end, 
[Adj DC power] = power_before_downtime 
FROM (
    SELECT [Adj Start date], [Adj end date], [Adj DC power], downtime_start, downtime_end, power_before_downtime, 
     rn = ROW_NUMBER() OVER (PARTITION BY downtime_start, downtime_end ORDER BY id) 
    FROM dbo.TB1 
) T 
WHERE rn = 1 

CASE WHEN rn = 1 THEN downtime_start ELSE 0 END

+0

3つのカラムすべてにinavlidカラム名としてエラーが発生しています –

+0

@ Lookup_for_answers私は自分のクエリを編集し、5つの不足しているカラムを追加しました。エラーが表示された場合は完全なエラーメッセージを入力してください –

関連する問題