需要T-SQL逻辑思想

需要T-SQL逻辑思想,sql,sql-server,tsql,Sql,Sql Server,Tsql,嘿,伙计们,这里非常需要你们的专业知识。。 一位客户访问银行,一位代理人帮他办理账户。同样,同一位客户在同一天返回时获得了收益,另一位出纳帮了他/她。因此,有两位或两位以上访客的记录。但只应计算其中一位。 我就是这么想的,但这并不能帮我解决问题。你们认为呢。像往常一样,非常感谢你们的意见…“显然我迷路了”。谢谢大家 SELECT CD.MEMACT, CD.DATETIME,--DATETIME CD.AG_ID,

嘿,伙计们,这里非常需要你们的专业知识。。 一位客户访问银行,一位代理人帮他办理账户。同样,同一位客户在同一天返回时获得了收益,另一位出纳帮了他/她。因此,有两位或两位以上访客的记录。但只应计算其中一位。 我就是这么想的,但这并不能帮我解决问题。你们认为呢。像往常一样,非常感谢你们的意见…“显然我迷路了”。谢谢大家

     SELECT  CD.MEMACT,
                 CD.DATETIME,--DATETIME
                 CD.AG_ID,
                 RANK() OVER (PARTITION BY 
                                   CD.MEMACT,
                                   CD.DATETIME,
                                   CD.AG_ID
                            ORDER BY CD.DATETIME)RANKED

             FROM MEM_ACT_TBL
             WHERE CD.MEMACT='1024518'

那会给你第一张唱片。如果您想要最后一条记录,请将订单更改为
CD.DATETIME DESC

您想要达到什么样的效果?您想要的是最后一次访问吗?您使用的是什么数据库平台?如何确定哪些是重要的?您的意思完全不清楚,您的示例非常不幸:客户和银行都非常关心每一笔付款和取款交易,即使最终结果为零。如果您展示一些样本数据并解释结果应该是什么样子,这会有所帮助。你只需要展示一些简单的虚拟数据来解释这一点,它不一定是真实的数据。我怀疑您“迷路了”,因为您自己还没有完全理解需求,尽管我可能错了。
Select * 
from
         (
         SELECT  CD.MEMACT,
             CD.DATETIME,--DATETIME
             CD.AG_ID,
             RANK() OVER (PARTITION BY 
                               CD.MEMACT
                        ORDER BY CD.DATETIME)RANKED

         FROM MEM_ACT_TBL
         )
WHERE RANKED = 1
      AND MEMACT='1024518'