ケースの機能と負の値を表示する方法はありますか?

マアマドゥA.カヌーテ:

質問:

レポートを提供することを示している顧客のフルネーム(姓と名の合わせて)、コテージ名、コテージの地域名、予約価格(12月、2017年のフォーマット15日)での予約の日付、その差そのコテージの予約価格およびすべてのコテージの平均の予約価格の間(形式の最も近い小数第1位に切り捨て$ yy.y例えば$ 25.6)、フルネームで降順に配置されました。

私の答え:

SELECT CONCAT(Customer_FName," ",Customer_LName) AS 'Name', Cottage_Name, Region_Name, 
DATE_FORMAT(Booking_Date,"%D %M %Y" ) AS 'Date Booked', Booking_Price,
CASE 
    WHEN AVG(Booking_Price) < Booking_Price THEN Booking_Price - AVG(Booking_Price)
    ELSE -1 * (AVG(Booking_Price) - Booking_Price)
END AS 'Diff From Average'

FROM Customer

JOIN Booking USING(Customer_ID)
JOIN Cottage
JOIN Region
GROUP BY Name;

私の出力: ここでは、画像の説明を入力します。

所望の出力が負の値の代わりに0を表示しなければなりません

私の質問:同じ操作を行うことができます機能についてず誰もが知っているCASE... WHENと負の値を表示しますか?

SQLFiddle(データおよびすべての必要なファイルを含む):http://sqlfiddle.com/#!9/8a40db/2/0

ERD: ここでは、画像の説明を入力します。

質問からヒント:

ここでは、画像の説明を入力します。

NBK:

平均は、予約の価格と同じであるため、唯一のゼロがあります。

しかし、すべてであなたのケースを作る必要はありません

ON clqauseと結合あなたは、より良い適切な使用する必要があります

SELECT 
    CONCAT(Customer_FName," ",Customer_LName) AS 'Name'
    , Cottage_Name
     , Region_Name, 
     DATE_FORMAT(Booking_Date,"%D %M %Y" ) AS 'Date Booked'
    , Booking_Price
    ,
    CONCAT('$',ROUND((Booking_Price - AVG(Booking_Price)),1)) AS 'Diff From Average'
FROM Customer
    JOIN Booking USING(Customer_ID)
    JOIN Cottage
   JOIN Region
GROUP BY Name;



Name            Cottage_Name                        Region_Name     Date Booked         Booking_Price   Diff From Average
Bob Perkins     Atlantic Beach Resort Cottage 1     Halifax         10th January 2018   144             $0.0
Charlie Oscar   Atlantic Beach Resort Cottage 1     Halifax         15th January 2018   1176            $294.0
Eve Evenfield   Atlantic Beach Resort Cottage 1     Halifax         22nd December 2017  654             $0.0
Frank Mitchell  Atlantic Beach Resort Cottage 1     Halifax         15th January 2018   384             $0.0
Grace Damon     Atlantic Beach Resort Cottage 1     Halifax         1st January 2018    170             $0.0
Student DalFCS  Atlantic Beach Resort Cottage 1     Halifax         15th January 2018   584             $154.5

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=19593&siteId=1