2011-01-31 17 views
0

SQL Serverの使用。以下の条件のような合計時間を条件付きで分割する方法

私は3列までの総時間列を分割する必要が表1

ID TotalTime 

001 12:00:00 
002 11:00:00 
003 09:00:00 
004 08:00:00 
005 14:00:00 
.... 
...., 

TotalTime Datatype is nvarchar 

First 8 Hours should display in First column 
After 8 Hours the next 2 Hours should display in Second column 
After 10 Hours the remaining hours should display in third column 

予想される出力

のクエリを作成する方法
ID TotalTime Column1 Column2 Column3 

001 12:00:00 08:00:00 02:00:00 02:00:00 
002 11:00:00 08:00:00 02:00:00 01:00:00 
003 09:00:00 08:00:00 01:00:00 
004 08:00:00 08:00:00  
005 14:00:00 08:00:00 02:00:00 04:00:00 
.... 
...., 

上記の条件。

クエリのヘルプが必要です。

+0

は、列2および3の許容NULLの代わりに0の値はありますか? –

+0

TotalTime列の種類は何ですか? nvarcharのようなものではありません。テーブルの定義を教えてください。 –

+0

1. 'hh:mm:ss'文字列に分&秒がありますか? 2.時間は23時間を超えることはできますか? –

答えて

2

あなたは時間を分割するcaseを使用することができます。

select ID 
,  case when totaltime > 8 then 8 
      else totaltime end 
,  case when totaltime > 10 then 2 
      when totaltime > 8 then totaltime - 8 
      else 0 end 
,  case when totaltime > 10 then totaltime - 10 
      else 0 end 
from YourTable 
+0

Nitpick:TotalTime列がなく、Gopalは を '0'ではなく' null'sにしたいと思っていましたが、それ以外は+ 1 –

関連する問題