2017-02-20 4 views
0

私は100カラムに値があり、それをすべてテラデータの各ローで合計する必要があります。それぞれの列の名前をそれぞれ入力する必要なしに、すべてを合計できる方法がありますか?Teradata-カラム名を入力せずにカラムごとに値を集計する

私は結果が

SELECT CustID,(Col1+Col2+Col3+Col4+.....................Col100) 

FROM CustomerTable 

になりたい私は、列名を入力せずにこれを行うことができます。私は*すべての行を合計することを知っています。同様に、同じ行の各列の値を合計できる方法がありますか?

+1

仕事楽かもしれません。 –

+0

SQLでは、あなたが合計したいものを入力する必要があります。そのテーブル/データベーステーブルの 'dbc.columns'から選択し、カーソルを開いてレコードをループし、その結果を使って動的SQL文を作成して実行するprocを作成することができます。しかし、それはおそらく、100倍の列を集計するために簡単なSQL文を書くよりも1000倍の時間がかかります。 – JNevill

+0

また、私がこのような面倒な作業に苦しんでいるときは、メモ帳に列名をダンプし、カンマを見つけて置き換えてplussesに置き換えます。あまり仕事はしません。 – JNevill

答えて

0

これは、あなたが悪いデザインへの指示で要求

select  '+ ' || columnname 

from  dbc.columnsv 

where  databasename = '{your database}' 
     and tablename  = '{your table}' 
     and columnname  not in ('CustID',...,...) 

order by columnid   
関連する問題