2014-01-27 28 views
1

你們可以告訴我如何在sql中對用戶定義列和固定列名進行排序。我需要顯示最高交易額和最低交易額,而我只能獲得最高交易額,但oulet ID不在分組中。如何在sql中排序2個不同的列

原諒我而言,我非常糟糕的英語

這裏的問題是

outlet id | revenue code | total transaction | total amount 

6837  |  014 |  326  | 39158.94 
6821  |  408 |  291  | 48786.50 
6814  |  014 |  285  | 74159.76 
6837  |  452 |  282  | 8846.80 

,這裏是我的SQL

SELECT 
       outletid, 
       revcode, 
       count(receiptnumbe) as Transactions, 
       sum(amount) as total 
      FROM 
       user_payment 
      WHERE 
       date = (SELECT MAX(date) FROM user_payment GROUP BY date desc LIMIT 0, 1) 
      GROUP BY 
       outletid, revcode 
      ORDER BY Transactions desc 

我需要它是這樣的。按出口ID和最高交易排序。

outlet id | revenue code | total transaction | total amount 

    6837  |  014 |  326  | 39158.94 
    6837  |  452 |  282  | 8846.80 
    6821  |  408 |  291  | 48786.50 
    6814  |  014 |  285  | 74159.76 
+3

嘗試類似於:'by byleletid desc,Transactions desc' – Melon

+0

@Melon,它沒有任何效果... –

+0

「最大日期組按日期」eh? – Strawberry

回答

1

這是你想要的嗎?

ORDER BY OutletId, Transactions desc 

編輯:

如果我理解正確的話,你希望它由具有最總交易出口排序。然後通過該組內的交易。要做到這一點,你需要在outlet水平再次總結並加入回結果:

select outor.* 
from (SELECT up.outletid, up.revcode, count(up.receiptnumbe) as Transactions, 
      sum(up.amount) as total 
     FROM user_payment up 
     WHERE date = (SELECT MAX(date) FROM user_payment) 
     GROUP BY outletid, revcode 
    ) outor join 
    (SELECT up.outletid, count(up.receiptnumbe) as Transactions, 
      sum(up.amount) as total 
     FROM user_payment up 
     WHERE date = (SELECT MAX(date) FROM user_payment) 
     GROUP BY outletid 
    ) o 
    on outor.outletid = o.outletid 
order by o.Transactions desc, outor.outletid, outor.Transactions desc; 
+0

它不顯示最高分組。我需要什麼就像問題的最後一部分。 –

+0

是的,我們仍然有這個GROUP BY日期垃圾在這裏 – Strawberry

+0

@Strawberry。 。 。我刪除了那個。然而,最初的公式是因爲MySQL中的「group by」排序(我意識到這個功能已被棄用)。 –

0

1)做的第一件事是確保你正在排序的字段,你想要的方式。你想讓它們按數字或按字母順序排序嗎? See Sorting Lexical and Numeric 計數應該是數字,但你應該檢查無細胞。 如果您有權訪問這些表格,則可以將該字段更改爲數字類型,以便將其按字母順序進行排序或用字符串對其進行排序。 您可能需要使用強制轉換或轉換。 See Oracle Cast Documentation.

2)如果您希望整個表按照出口ID和事務數量排序,您可以考慮刪除group by子句。

3)即使這樣做確實有效,我會看到的第三件事情是重命名已保留單詞的列名作爲保留字的表。我注意到交易以藍色突出顯示。

當這些事情檢查時,瓜的評論應該工作。

好問題。隨時發表評論,以便我可以跟進。

相關問題