私はショップオーダーのレポートを作成しています。 SQLクエリは期待通りに機能します。レポート結果 - SQLを改善できるか?
各ショップの注文数、注文総額、手数料、および未払いの項目を計算します。
顧客はオンラインからのカードで支払った場合は配達時に現金で支払った顧客は、それはOutstandingComm
フィールド を示している場合、それはoutstanding_shop
フィールドを表示
SELECT T.ShopID, T.company, O.order_id, count(*) as NumOfOrders,
sum(O.shop_remaining) as ShopEarnings,
sum(O.comm_grandtotal) as OurComm,
SUM(CASE WHEN payment_method = 'PayCash' AND status = 1 THEN O.comm_grandtotal ELSE 0 END) as OutstandingComm,
SUM(CASE WHEN payment_method = 'PayCard' AND status = 1 THEN O.shop_remaining ELSE 0 END) as outstanding_shop
FROM Shops as T
JOIN orders O ON O.ShopID = T.ShopID
Group by ShopID
このSQLクエリは改善かであることができができます代わりに良い方法がありますか?
にインデックスを持つ必要があります。あなたは何を期待していますか? – YXD
私に良く見えます...もし何かを考えなければならないのなら、それはちょうどスタイルになります。最初の2つの「合計」関数は小文字で、次の2つは大文字で表示されます。また、 'SELECT'と 'FROM'は大文字で表示されますが、 'Group by'は表示されません。 –
StackOverflowは主に実際の問題を解決するためのものです。見直しのために[codereview.stackexchange.com](http://codereview.stackexchange.com/)に投稿してみてください。 –