-1

テーブルタイム:

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 つの列に分けて返すクエリを作成してください。

4

2 に答える 2

0

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

于 2013-03-28T07:48:20.583 に答える
0

期間については、最初に 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フィドルです

于 2013-03-28T07:35:16.613 に答える