2016-07-25 12 views
0

月単位で時間を合計したいと思っています。私は、このために、次のSQLコードを書いた:Tableau用のSSISのsqlテーブルに集計を作成する

以下のクエリはForecastHoursEndとグループ日付の合計を計算し、月によって

select year(forecastdate) as y, month(forecastdate) as m,sum(ForecastHrsEnd) as p 
from rpt_histsnapeng 
group by year(forecastdate), month(forecastdate) 

と、 以下のクエリは実際の時間と基の合計の日付を算出し、月

select year(ActualsDate) as y, month(ActualsDate) as m, sum(ActualHrs) as p 
from rpt_histsnapeng 
group by year(ActualsDate), month(ActualsDate) 

で今、私はそれを行うだろうか、私はチャートを作成するために、タブローでその列を使用できるように可変/列にそれらを渡すために、SSISでコードを記述しようとしていますか?

私は、この目的のためには、以下のリンクを参照した

SQL needed: sum over values by monthSQl query to sum-up amounts by month/year

+0

あなたが得ようとしている出力は何ですか? – Nicarus

+0

これは次のようなものです:rpt_HistsnapEngは毎日の予定日、予想時間、実際の日付と実際の時間があります。実際の時間と時間を毎年合計して月ごとに予測したい –

+0

2つのクエリの結果をTableauで使用できる単一の結果に結合しようとしていますか? – Nicarus

答えて

0

まず、あなただけの一年であなたの集計を実行するためにタブローを使用することはできませんすべての理由がありません月単位の穀物を、事前集計する必要はありません。

あなたが最初のSQLでデータを準備することを主張しかし、もし、あなたがオプションのカップルを持っている:

1. UNION

これは、あなたが使用できるようになり、より正規化された構造であり、 t( "type")をデータの分離/記述の尺度として使用します。

SELECT 
    YEAR(ForecastDate) AS y, 
    MONTH(ForcastDate) AS m, 
    'Forecast' AS t, 
    SUM(ForecastHrsEnd) AS p 
FROM 
    rpt_histsnapeng 
GROUP BY 
    YEAR(ForecastDate), 
    MONTH(ForcastDate) 

UNION ALL 

SELECT 
    YEAR(ActualsDate) AS y, 
    MONTH(ActualsDate) AS m, 
    'Actual' AS t, 
    SUM(ActualHrs) AS p 
FROM 
    rpt_histsnapeng 
GROUP BY 
    YEAR(ActualsDate), 
    MONTH(ActualsDate) 

2 BASIC

これは非正規化し、既存のテーブル構造に近いです。 Tableauでは、デュアル軸として小節(時間)を使用するだけで、このデザインをうまく処理できます。

SELECT 
    YEAR(ForecastDate) AS Forecast_Year, 
    MONTH(ForcastDate) AS Forecast_Month, 
    YEAR(ActualsDate) AS Actual_Year, 
    MONTH(ActualsDate) AS Actual_Month, 
    SUM(ForecastHrsEnd) AS Forecast_Hours, 
    SUM(ActualHrs) AS Actual_Hours 
FROM 
    rpt_histsnapeng 
GROUP BY 
    YEAR(ForecastDate), 
    MONTH(ForcastDate), 
    YEAR(ActualsDate), 
    MONTH(ActualsDate) 
関連する問題