2010-10-15 151 views
1

hEY全部SQL總計和總計

我有一個表顯示事務及其狀態。如何創建一列,顯示總的已完成的交易,拒絕下跌,總計所有的在不同的列

例如我期待這樣的事情

Completed 100 
Rejected 50 
Declined 20 
Total  170 

在3不同的行..

表字段是這樣的。

transaction_id 
status_id, 
date 
transaction_number 
+0

什麼SQL RDBMS? – 2010-10-15 10:34:26

+0

查看http://tinyurl.com/so-hints以獲得更好的提問 - 在這裏SO或一般在任何論壇,在線或離線 – 2010-10-15 10:41:54

+0

對不起MS SQL 2005 – andreas 2010-10-15 10:45:19

回答

3

假設你在你需要的輸出提的文本狀態對應於你的表格中status_id列,你可以使用類似:

SELECT status_id, count(*) 
FROM dbo.YourTable 
GROUP BY status_id WITH ROLLUP 

這適用於SQL Server 2000和較新的 - 不知道如果其他RDBMS具有完全相同的語法...(不幸的是,你沒有提到你使用是什麼系統?)

WITH ROLLUP會導致額外的配置加入到NULL的status_id的結果 - 這是所有計數合計的總和。

你沒有提到如何「翻譯」成status_id的文字說明 - 如果你提供必要的信息能被添加....

+0

@ Vash:爲rollup添加WITH ROLLUP – 2010-10-15 10:36:00

+0

+1;然後;-)。 – 2010-10-15 11:03:22

+0

+1,你可以添加一個COALESCE來包含單詞「total」:'SELECT COALESCE(status_id,'Total'),count(*)...' – 2010-10-15 12:32:51