2017-06-13 131 views
0

我的原始報告爲帳戶ABC返回3條記錄,1爲批准狀態,2爲暫停狀態。這些行中唯一的區別是狀態和開票號碼。所有其他數據是相同的。Teradata SQL MAX函數和重複行

我正在嘗試創建此報表的一個變體,它將爲帳戶ABC返回1行,該列顯示已覈准帳戶的計數以及另一列的已暫停帳戶的計數。

在新的報告中,就爲1的值,並用2

我使用MAX函數返回僅1行的值已暫停的帳戶列經批准的帳戶列。我遇到的問題是,除了帳單號碼之外,具有暫停狀態的2條記錄是相同的。

如果我從SQL中刪除開票號碼,那麼結果只返回1個已暫停和1個已批准的帳戶。我需要的SQL在暫停列

這裏用1覈准列和2返回1行是一些示例數據:

Acct# Bill# Name Location Status 
ABC  Bill1 ABC Co 123456 Approved 
ABC  Bill2 ABC Co 123456 Suspended 
ABC  Bill3 ABC Co 123456 Suspended 

任何建議,將不勝感激。感謝您的幫助.....

回答

2

你需要 「有條件聚集」:

select Acct#, Name, Location, 
    sum(case when Status = 'Approved' then 1 else 0 end) as Approved, 
    sum(case when Status = 'Suspended' then 1 else 0 end) as Suspended 
from ... 
group by 1,2,3 
+0

感謝。這對我有用........ – Shaves