2012-10-22 173 views
0

我有一個查詢使用在UNION ALL

select username,amount from employee 
union all 
select '' as username,sum(amount) from employee 
order by cast(username as decimal) 

用戶名的啓動順序從1000

當我使用這個查詢它總是顯示最高的用戶名,以最小的用戶名

我想顯示最小用戶名到最高用戶名

我爲此做了什麼?

+2

爲了通過投(用戶名作爲十進制)遞減 –

+0

是什麼'username'的數據類型?用戶名的樣本記錄是什麼? –

+0

數據類型是varchar – noushad

回答

1

嘗試通過在子查詢包裹的,

SELECT * 
FROM 
    (
     SELECT username, amount from employee 
     UNION ALL 
     SELECT '' as username, sum(amount) from employee 
    ) x 
ORDER BY (CASE WHEN username = '' THEN 1 ELSE 0 END) ASC, 
      CAST(username AS SIGNED) ASC 
+0

感謝John Woo,如果我使用這個查詢它顯示從最小到最高,但首先顯示數額的總和。我想要金額的總和持續 – noushad

+0

@noushad嘗試我更新的查詢, –

+0

謝謝John Woo。此查詢完美工作。 – noushad