2016-05-06 2 views
0

フィールドベースでデータベース内のすべてのフィールドの合計を返すSQLクエリを実行する方法はありますか?データベース内のすべてのフィールドの合計

クエリでは、数値フィールドと日付フィールドとカウントテキストフィールドの合計が理想的です。

すなわち

表1

Amount1 Amount2 Text1 
10  25  AAA 
25  50  BBB 
30  25  null 

結果

Table1, Amount1 65 
Table1, Amount2 100 
Table1, Text1 2 

これは、すべてのテーブルのすべてのフィールドのために繰り返す必要があります。

+2

これを動的に行う必要があります。どのくらい正確にあなたのdbmsに依存するでしょう。 – HoneyBadger

+0

また、日付フィールドを合計する場合は、正確に何をしたいですか?たとえば、「01-01-1999」と「05-05-2016」の合計は何ですか? – HoneyBadger

+0

テーブルにはカラムはありません... – jarlh

答えて

2
GROUP BY句(TABLE_ROW_IDでグループ)との

使用を選択:

SELECT SUM(Amount1), SUM(Amount2), COUNT(Text1) FROM Table1 GROUP BY TABLE_ROW_ID 
+2

"データベースのすべてのフィールド"。これは、データベース内のすべてのフィールドではなく、単一のテーブルに対するソリューションです。 – HoneyBadger

+0

これまでの返信をありがとう - これはSQL Management Studio 2012です - データベースの各テーブルの合計行をレポートするために現在スキーマを使用しているコードをいくつか持っているので、各列(フィールド)で同様のものを探しています。最初は、すべてのテーブルの各列を集計して、それが適切なスタートになる場合は、後でテキスト/日付フィールドで何をするかを検討することができます。 – grisslewissle

0

ありますが、このようなテーブルやカラムなどINFORMATION_SCHEMAテーブルの使用が必要となります。 T4をクエリのテンプレートに使用し、ロジックを使用してテーブルごとにクエリを作成できる場合は、おそらくHereは、Mergeステートメント用のテンプレートを作成する方法に関するウォークスルーです。特定のケースでどのように適応させるかについてのアイデアを提供します。

ここではSQL Server(INFORMATION_SCHEMA)について説明していますが、他のRDBMSエンジンにもメタデータストアがあると確信しています。

+0

これまでの返信ありがとうございます - これはSQL Management Studio 2012です - 現在スキーマを使用してデータベース内の各テーブルの合計行をレポートするコードで、各列(フィールド)に類似したものを探します。最初は、良いスタートになるすべてのテーブルの各列を合計するだけでよい場合は、後でテキスト/日付フィールドを使って何をするかを検討することができます。 – grisslewissle

関連する問題