2016-10-30 9 views
0

以下のクエリを実行すると、temp_08.membersテーブルは、すべての計算の合計である1つの列(Q4'10)のみを作成します。これは間違っています。日付間のSum()の簡略化

代わりに私は四半期ごとに別々の列を作成しようとしています。何らかの理由で、以下のクエリではこれを達成できません。

第2に、このクエリを書くより効率的な方法があります。私は20分の2を持っていますが、それぞれが変わる唯一のことは列名(Q4_16として)と各選択の日付です。あなたが作成するすべてのテーブルのために、このような何かを行うことができ

SELECT date_trunc('quarter', date) as yyyyqq, brand, sum(calc) as sumcals, 
INTO temp_08.members 
FROM temp_08.source 
GROUP BY date_trunc('quarter', date), brand; 

:私はあなたを推測してい

SELECT 
sum(calc) as Q4_10, 
brand 
into temp_08.members 
from temp_08.source 
WHERE date > '09/30/2010' and date <= '12/31/2010' 
GROUP BY brand 

insert into temp_08.members 
SELECT 
sum(calc) as Q1_11, 
brand 
from temp_08.source 
WHERE date > '12/31/2010' and date <= '3/31/2011' 
GROUP BY brand 

insert into temp_08.members 
SELECT 
sum(calc) as Q2_11, 
brand 
from temp_08.source 
WHERE date > '3/31/2011' and date <= '6/30/2011' 
GROUP BY brand 

insert into temp_08.members 
SELECT 
sum(calc) as Q3_11, 
brand 
from temp_08.source 
WHERE date > '6/30/2011' and date <= '9/30/2011' 
GROUP BY brand 

insert into temp_08.members 
SELECT 
sum(calc) as Q4_11, 
brand 
from temp_08.source 
WHERE date > '9/30/2011' and date <= '12/31/2011' 
GROUP BY brand 

答えて

1

はこのような何かをしたいです。期間は明示的な列であることに注意してください。

+0

ゴードン..私はopがピボットも探していると思います。 –

+0

ありがとうゴードン。ここで問題となるのは、各クエリには四半期ごとのユニークな日付範囲があり、企業の四半期財務四半期です。私は、各四半期の開始日と終了日をカスタム設定する機能を維持する必要があります。 – ZJAY

+0

@ZJAY。 。 。あなたの質問は四半期の標準定義を使用しているというコードです。ただし、他の定義を処理するコードを変更することは特に難しくありません。それは別の*質問かもしれませんが、これはそうではありません。 –