【问题标题】:Max Date with WHERE and HAVING clauses- Teradata带有 WHERE 和 HAVING 子句的最大日期 - Teradata
【发布时间】:2012-01-22 23:07:46
【问题描述】:

我有一个包含 acc_nbr、tran_nbr、tran_amt、tran_dt 和 tran_typ 的事务表。

我只需要找到 tran_typ = 'xx' 和 sum(tran_amt)

我可以找到所有 'xx' tran_typ 的总和小于零的帐户,但如果不添加所有包含负 tran_typ 'xx' 的交易,我似乎无法获得其中的日期。

目前有效:

    SEL acc_nbr, SUM(tran_amount) as error
    FROM DATABASE.TRAN_TBL

    WHERE tran_typ = 'xx' 
    GROUP BY acc_nbr
    HAVING sum(tran_amt)<0

如何输入最近一次交易的日期?

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    最好的办法是在一组中找到所有负和的帐户,在另一组中找到每个帐户的最新交易日期,然后将它们内部连接到同一个帐户中。

    您可能想尝试以下方法:

    SEL sumtran.acc_nbr, sumtran.error, latest.latest_dt 
    FROM 
      ( SEL acc_nbr, SUM(tran_amt) AS error
        FROM DATABASE.TRAN_TBL
        WHERE tran_typ = 'xx' 
        GROUP BY acc_nbr
        HAVING sum(tran_amt)<0 ) AS sumtran
    INNER JOIN
      ( SEL acc_nbr, MAX(tran_dt) AS latest_dt
        FROM DATABASE.TRAN_TBL
        GROUP BY acc_nbr ) AS latest
    ON sumtran.acc_nbr = latest.acc_nbr
    

    teradata 的语法可能略有不同,但总体思路应该相同。

    【讨论】:

      【解决方案2】:

      我不太确定我是否理解问题,但您应该能够将 MAX(trans_dt) 添加到选择中,它会为您提供最近的交易日期

      SEL acc_nbr, SUM(tran_amount) as error, MAX(tran_dt) as most_recent_dt
      FROM DATABASE.TRAN_TBL
      
      WHERE tran_typ = 'xx' 
      GROUP BY acc_nbr
      HAVING sum(tran_amt)<0
      

      【讨论】:

      • 我已经尝试了您的建议,但我得到的帐户不符合条件 sum(tran_amt)
      • max(tran_date) 将返回 acc_nbr 的最大值...该事务本身可能是负值,也可能不是负值,但结果集中没有行总为正总和(对于 acc_nbr),因为你有子句。你的目标到底是什么?
      • 我正在尝试查找此类负交易的总金额超过其此类正交易的总和的账户。因此,客户可以有许多交易,包括正数和负数,但这些交易的总和应该始终为正数。但是,我的系统中有一个错误,有时会发布额外的负面交易,这使得他们的交易总和为负。所以,我需要找到所有反式总数为负数的账户,但还需要查看他们最后一次购物的日期(可能不是他们去负数的时间)。
      • 上面的最大日期解决方案给了我一个类型为“xx”的负交易的日期,但是文件中还有其他较新的交易用于这个账户(并且这个账户的总和不是消极的)。我想我需要首先找到 sum
      • 我在上面发布的内容应该可以做到。添加 MAX(tran_dt) 不应该影响结果集,只是给你额外的数据。我唯一看到的错误是它应该是选择中的 SUM(tran_amt) 而不是 SUM(tran_amount)。使用 MAX(tran_dt) 得到的返回行数是否与没有返回的行数不同?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2021-11-30
      • 2018-10-06
      • 2019-09-26
      • 2017-10-07
      • 2014-12-16
      相关资源
      最近更新 更多