zoukankan      html  css  js  c++  java
  • 去 账号、昵称重复,并取最新一次绑定记录

    代码如下:

    select t1.* from (SELECT ut.TransactionAccount,u.NickName,
    p.ProfessorName '绑定老师',
    ub.UpdateTime AS '变动时间' 
    FROM dbo.UserBind ub JOIN dbo.UserTransaction ut ON ub.UserId=ut.UserId
    JOIN dbo.Users u ON ub.UserId=u.UserId
    JOIN dbo.Professor p ON p.Id=ub.ProfessorId
    WHERE u.IsEnable=1
    
    AND ub.UpdateTime<'2016-01-18') t1
    inner join
    
    (SELECT ut.TransactionAccount,u.NickName,
    
    max(ub.UpdateTime) AS '变动时间' 
    FROM dbo.UserBind ub JOIN dbo.UserTransaction ut ON ub.UserId=ut.UserId
    JOIN dbo.Users u ON ub.UserId=u.UserId
    JOIN dbo.Professor p ON p.Id=ub.ProfessorId
    WHERE u.IsEnable=1 AND ub.UpdateTime<'2016-01-18'
    
    group by ut.TransactionAccount,u.NickName) as t2
    on t1.TransactionAccount=t2.TransactionAccount
    and t1.变动时间=t2.变动时间

    写法思路:

    有时间列就取最大时间列
    有自增的id就去最大id

    如果是想返回一个记录集,并且有时间列的话可以这么做
    select 重复列,时间列,其余列 
    inner join (select 重复列,max(时间列) as 时间列 from 表 group by 重复列) AS T2
    on t1.重复列=t2.重复列 and t1.时间列 =t2.时间列
    from 表 AS T1

    总结:

    写法代码段重复很多,大家有什么好的方法呢???

  • 相关阅读:
    c函数文件读写
    ubuntu server telnet 服务(转)
    如何使用MFC和类型库创建自动化项目
    认识配置设置文件(INI与XML)
    fopen时w与wb的区别
    VM连接 的三种方式
    UBUNTU 配置WEB服务器,PHP,MYSQL,PHPADMIN,APARCHE .
    VC++多线程编程
    ubuntu server 安装
    c++ static 关键字
  • 原文地址:https://www.cnblogs.com/xujie520/p/5139910.html
Copyright © 2011-2022 走看看