1

我在一个表中有两行。我想添加第三行来保存总值。

我的桌子是

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_TYPE,PHY_DIG_OR_TOTAL将是“PHY”或“DIG”,我希望得到总数。我想将两条记录相加SUM_UNITS_RECEIVEDPERC_UNITS_RECEIVED其中UNIT_TYPES,EL_CLIENT_IDRECORDING_IDs 是相同的。然后我想将其作为具有相同的新行插入UNIT_TYPERECORDING_ID但这次已PHY_DIG_OR_TOTAL设置为“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 BYSQL 语句以了解有关此语句的更多信息。

于 2012-10-02T13:25:57.437 回答