需要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'