0

データを集計したい SQL 2005 のテーブルがあります。例を次に示します。

JobName       ProductionCounter       StartDate             EndDate               CounterName        Stage
----------------------------------------------------------------------------------------------------------

200           23                      2012-08-30 13:45:00                          Kilograms          Final
200           2                       2012-08-30 13:45:00                          Bars               Final
    [...]
200           46                      2012-08-30 13:45:00   2012-08-30 17:23:00    Kilograms          Final
200           4                       2012-08-30 13:45:00   2012-08-30 17:23:00    Bars               Final
300           20                      2012-08-30 13:45:00                          Kilograms          1st
300           10                      2012-08-30 18:12:00                          Bars               1st
    [...]
300           40                      2012-08-30 18:12:00   2012-08-30 19:17:00    Kilograms          1st
300           20                      2012-08-30 18:12:00   2012-08-30 19:17:00    Bars               1st

I want to format this into the following


JobName      TotalKilos       TotalBars       StartDate             EndDate               Stage
-----------------------------------------------------------------------------------------------

200          69               6               2012-08-30 13:45:00   2012-08-30 17:23:00   Final
300          60               30              2012-08-30 18:12:00   2012-08-30 19:17:00   1st

これは、私がSQLについて何も知らないことに気づきました。私は最初に次のことを試しました

SELECT JobName, SUM(KiloCounter)
FROM vwOeeInterval
GROUP BY JobName

SELECT JobName, SUM(BarCounter)
FROM vwOeeInterval
GROUP BY JobName

私の質問は次のとおりです。

  1. これらを 1 つのクエリに結合するにはどうすればよいですか?

  2. StartDate や Stage などの列を照会するにはどうすればよいですか? 特に、ジョブが完了するまで終了日が入力されない場合は?

どんなポインタでも大歓迎です。

4

2 に答える 2

0

最初に Jobname 、次にcountername基づいて合計を取得しようとしているため、これらの 2 つの列に基づいてグループ化する必要があります。

グループ化する2つの列を選択することを忘れないでください

サンプルは次のようになります -
Select column1, column2, sum(column3) from tablename
where blah blah blah...
group by column1, column2

于 2012-08-31T13:50:06.867 に答える
0

これは単純な集計クエリです。必要なフィールドを追加するだけです。

SELECT JobName, SUM(KiloCounter) as TotalKilos,
       sum(BarCounts) as TotalBars,
       min(StartDate) as StartDate,
       max(EndDate) as EndDate,
       max(Stage) as Stage 
FROM vwOeeInterval
GROUP BY JobName

同じジョブのすべての行で、StartDate、EndDate、および Stage が同じか NULL であることがわかっていると思います。集計は NULL 値を無視します。

于 2012-08-31T13:26:52.043 に答える