テーブルタイム:
ID Time in Time out Vehicle Type
1 10:30 11:20 bike
2 10:40 12:30 car
テーブル料金:
Id Vehicle Type Rate
1 bike 50
2 Car 100
車両の種類に応じた料金を適用して、合計所要時間と費用を 2 つの列に分けて返すクエリを作成してください。
テーブルタイム:
ID Time in Time out Vehicle Type
1 10:30 11:20 bike
2 10:40 12:30 car
テーブル料金:
Id Vehicle Type Rate
1 bike 50
2 Car 100
車両の種類に応じた料金を適用して、合計所要時間と費用を 2 つの列に分けて返すクエリを作成してください。
SQL FIDDLE EXAMPLEを教えてください。
同じように質問することもできます。1 分の延長は 1 時間の延長と見なされるため、これはより多くの料金を請求するのに役立つと思います.....
select A.id,
Time_in,
Time_out,
A.Vehicle_type,
CEILING(DATEDIFF(Minute, Time_in, Time_out)/60.0) as Park_Duration_Hours,
B.Rate * CEILING(DATEDIFF(Minute, Time_in, Time_out)/60.0) as TotalCharge
from TableTime A
left join TableCharges B
on A.Vehicle_Type = B.Vehicle_Type
期間については、最初に and に変換[Time in]
し[Time out]
てからDateTime
減算することができます
DATEDIFF(hour, cast('2013-01-01 ' + t1.[Time in] as datetime), cast('2013-01-01 ' + t1.[Time out] as datetime) )
最終的なクエリは次のとおりです。
SELECT
t1.id, t1.[Time in], t1.[Time out], t1.[Vehicle Type]
, cast('2013-01-01 ' + t1.[Time IN] as datetime) as tin
, cast('2013-01-01 ' + t1.[Time out] as datetime) as tout
, DATEDIFF(hour, cast('2013-01-01 ' + t1.[Time in] as datetime), cast('2013-01-01 ' + t1.[Time out] as datetime) )
as Duration
, (DATEDIFF(hour, cast('2013-01-01 ' + t1.[Time in] as datetime), cast('2013-01-01 ' + t1.[Time out] as datetime) ) ) *
( select rate from t2 where t2.[Vehicle Type] = t1.[Vehicle Type] )
as Charge
FROM t1
これは SQLフィドルです