1

テーブルに 2 つの行があります。合計値を保持する 3 行目を追加したいと思います。

私のテーブルは

SELECT 
CONTROLLED_PERCENTAGE, EL_CLIENT_ID, ID, 
   PERC_ADJ_UNITS_RECEIVED, PHY_DIG_OR_TOTAL, RECORDING_ID, 
   SUM_UNITS_RECEIVED, UNIT_TYPE
FROM EL_CLIENT_REC_UNITS;

, EL_CLIENT_ID,UNIT_TYPEPHY_DIG_OR_TOTAL'PHY' または 'DIG' になり、合計を取得しようとしています。、SUM_UNITS_RECEIVEDおよびPERC_UNITS_RECEIVEDが同じである 2 つのレコードとを合計したいと思います。次に、これを同じ新しい行として挿入したいのですが、今回は「TOTAL」に設定されています。UNIT_TYPESEL_CLIENT_IDRECORDING_IDUNIT_TYPERECORDING_IDPHY_DIG_OR_TOTAL

4

1 に答える 1

0

次のようなことを試してください:

SELECT 
    ID, 
    EL_CLIENT_ID, 
    RECORDING_ID, 
    UNIT_TYPE,
    PHY_DIG_OR_TOTAL, 
    CONTROLLED_PERCENTAGE, 
    SUM_UNITS_RECEIVED, 
    PERC_ADJ_UNITS_RECEIVED
FROM EL_CLIENT_REC_UNITS

UNION ALL -- concatenate sets

SELECT 
    NULL                         AS ID, -- No ID for this row
    EL_CLIENT_ID                 AS EL_CLIENT_ID, 
    RECORDING_ID                 AS RECORDING_ID, 
    UNIT_TYPE                    AS UNIT_TYPE, 
    'TOTAL'                      AS PHY_DIG_OR_TOTAL, 
    AVG(CONTROLLED_PERCENTAGE)   AS CONTROLLED_PERCENTAGE,  -- I don't know what to do with that
    SUM(PERC_ADJ_UNITS_RECEIVED) AS PERC_ADJ_UNITS_RECEIVED,
    SUM(SUM_UNITS_RECEIVED)      AS SUM_UNITS_RECEIVED
FROM EL_CLIENT_REC_UNITS
GROUP BY UNIT_TYPE, EL_CLIENT_ID, RECORDING_ID;

GROUP BYこのステートメントの詳細については、SQL ステートメントをググってみてください。

于 2012-10-02T13:25:57.437 に答える