首页 > 解决方案 > 我想从按 BANKCASENUMBER 和 BALANCE 列分组的 DATETIME 列中获取第一个和最后一个日期

问题描述

我试图根据 SQL 中的 BANKCASENUMBER 和 BALANCE 列获取 DATETIME 的第一个和最后一个日期。

在此处输入图像描述

到目前为止,我的代码是:

CREATE TABLE WORK.QUERY_FOR_FILTER_FOR_QUERY_FOR_S AS 
       SELECT t1.ACCOUNTID, 
          t1.BALANCE, 
          t1.DATETIME, 
          t2.TYPE, 
          t2.BANKCASENUMBER
      FROM WORK.FILTER_FOR_QUERY_FOR_SORTSORTED t1
           INNER JOIN TALLY.ACCOUNTDETAILS t2 ON (t1.ACCOUNTID = t2.ACCOUNTS1);

有没有办法做到这一点?

标签: sqlsql-serversasenterprise-guide

解决方案


使用GROUP BY根据您的需要对列进行分组,SQL-Server并使用您不希望出现在分组条件中的 聚合函数

  SELECT 
      t1.ACCOUNTID, 
      SUM(t1.BALANCE), 
      MIN(t1.DATETIME) AS FirstDate, 
      MAX(t1.DATETIME) AS LastDate,
      t2.TYPE, 
      t2.BANKCASENUMBER
  FROM WORK.FILTER_FOR_QUERY_FOR_SORTSORTED t1
       INNER JOIN TALLY.ACCOUNTDETAILS t2 ON (t1.ACCOUNTID = t2.ACCOUNTS1);

  GROUP BY t1.ACCOUNTID, t2.TYPE, t2.BANKCASENUMBER 

推荐阅读