0

関数を使用してSQLクエリで計算を行っていDateDiffます。DateDiff値が負の場合、計算が間違っていました

Declare @ActualTime Numeric(10,2)=677.00

Select Convert(Numeric(10,2),(100*((@ActualTime-(Convert(Numeric(10,2),CONVERT(VARCHAR(10),SUM(DATEDIFF(Minute,VendorTicketRaisedOn ,ClosedOn)) / 60)+'.'+
      Right('00'+CONVERT(VARCHAR(2),SUM(DATEDIFF(Minute, VendorTicketRaisedOn , ClosedOn)) % 60),2))))/@ActualTime*1)))[AGS Uptime %]
      From Ticket

2 つの列VendorTicketRaisedOn&ClosedOnはタイプDateTimeです。If ClosedOn> VendorTicketRaisedOnThen 値が負になりました。

このケースを処理して結果を 0 として生成するにはどうすればよいですか?

Value が負の場合、DateDiff は -value ではなく 0 として出力する必要があります

DB : SQL サーバー 2008

4

1 に答える 1

1

クエリ:

Declare @ActualTime Numeric(10,2)=677.00

SELECT CASE WHEN ClosedOn > VendorTicketRaisedOn 
            THEN 0
       ELSE Convert(Numeric(10,2),(100*((@ActualTime-(Convert(Numeric(10,2),CONVERT(VARCHAR(10),SUM(DATEDIFF(MINUTE,VendorTicketRaisedOn ,ClosedOn)) / 60)+'.'+ Right('00'+CONVERT(VARCHAR(2),SUM(DATEDIFF(MINUTE, VendorTicketRaisedOn , ClosedOn)) % 60),2))))/@ActualTime*1)))
      END AS [AGS Uptime %]
FROM Ticket
于 2013-05-15T07:02:52.853 に答える