处理多行

问题描述 投票:1回答:1

我根据单位ID,行ID,CURR_DATE在'INTERIM_AUTO'表上汇总数据,即

SELECT INTERIM_AUTO_ID,
       UNIT_ID,
       PROD_LINE_ID,
       CURR_DATE,
       BAL_AMOUNT,
       V_SOURCE_CODE,
       CURR_ID,
       CREATED_BY,
       UPDATED_DATETIME
  FROM INTERIM_AUTO
 WHERE CURR_DATE = to_date(V_DATE, 'MM/DD/YYYY')
 GROUP BY UNIT_ID,
          PROD_LINE_ID,
          CURR_DATE

然后,如果我们得到上述组合的多个条目,那么我必须对BAL_Amount进行求和,并考虑上述组合的单个条目与此计算的金额。我该如何实现这一目标?

sql oracle oracle11g
1个回答
1
投票

听起来你想要计算BAL_AMOUNT列的总和。您可以使用SUM函数执行此操作。

如果您在BAL_AMOUNT列上使用SUM,则必须将所有其他列添加到GROUP BY中:

   SELECT INTERIM_AUTO_ID,
          UNIT_ID,
          PROD_LINE_ID,
          CURR_DATE,
          SUM(BAL_AMOUNT) as SUM_BAL_AMOUNT,
          V_SOURCE_CODE,
          CURR_ID,
          CREATED_BY,
          UPDATED_DATETIME
     FROM INTERIM_AUTO
    WHERE CURR_DATE = to_date(V_DATE, 'MM/DD/YYYY')
 GROUP BY UNIT_ID,
          PROD_LINE_ID,
          CURR_DATE,
          INTERIM_AUTO_ID,
          UNIT_ID,
          PROD_LINE_ID,
          V_SOURCE_CODE,
          CURR_ID,
          CREATED_BY,
          UPDATED_DATETIME;

或者删除不需要的列:

   SELECT UNIT_ID,
          PROD_LINE_ID,
          CURR_DATE,
          SUM(BAL_AMOUNT) as SUM_BAL_AMOUNT
     FROM INTERIM_AUTO
    WHERE CURR_DATE = to_date(V_DATE, 'MM/DD/YYYY')
 GROUP BY UNIT_ID,
          PROD_LINE_ID,
          CURR_DATE;
© www.soinside.com 2019 - 2024. All rights reserved.