oracle查询用户最后一次登录的信息

需求

查询用户最后一次登录的信息,每个用户只返回一条最后登录的记录

数据库

-- Create table
create table B_MAC_USB_KEY
(
  ID             VARCHAR2(64) not null,
  REMARK         VARCHAR2(2000),
  CREATE_BY      VARCHAR2(64),
  CREATE_DATE    DATE default sysdate,
  UPDATE_BY      VARCHAR2(64),
  UPDATE_DATE    DATE,
  STATUS         CHAR(1) default '0',
  SNO            VARCHAR2(20),
  MAC            VARCHAR2(100),
  BIND_NUM       NUMBER,
  LOGIN_DATE_MAC DATE,
  LOGIN_DATE_SNO DATE,
  NO             VARCHAR2(20)
)
tablespace YXDW
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    next 8
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table B_MAC_USB_KEY
  is 'MAC和加密狗绑定关系表';
-- Add comments to the columns 
comment on column B_MAC_USB_KEY.REMARK
  is '备注';
comment on column B_MAC_USB_KEY.CREATE_BY
  is '创建人';
comment on column B_MAC_USB_KEY.CREATE_DATE
  is '创建时间';
comment on column B_MAC_USB_KEY.UPDATE_BY
  is '修改人';
comment on column B_MAC_USB_KEY.UPDATE_DATE
  is '修改时间';
comment on column B_MAC_USB_KEY.STATUS
  is '0:正常1:删除';
comment on column B_MAC_USB_KEY.SNO
  is '加密狗编号(usb外表的号码)';
comment on column B_MAC_USB_KEY.MAC
  is '机器码';
comment on column B_MAC_USB_KEY.BIND_NUM
  is '加密狗已绑定的MAC数量';
comment on column B_MAC_USB_KEY.LOGIN_DATE_MAC
  is 'mac登录时间';
comment on column B_MAC_USB_KEY.LOGIN_DATE_SNO
  is 'sno登录时间';
comment on column B_MAC_USB_KEY.NO
  is 'SN,加密狗内部序列号';

SQL语句

参考:https://ask.csdn.net/questions/744504

SELECT * FROM (
SELECT user_id , login_time ,row_number() over (partition by user_id order by login_time desc) MM from xxx)
WHERE mm = 1

正式语句

<sql id="userUsbKeyColumns">

        a.ID AS "id",
        a.BRAND AS "brand",                   <!--     终端品牌        -->
        a.TYPE AS "type",                         <!-- 终端类型   -->
        a.OWNER_ID AS "ownerId",          <!-- 公司ID  -->
        (
            select b.owner_name
            from B_OWNER b
            WHERE a.OWNER_ID = b.OWNER_ID
        )  AS "ownerName",                     <!-- 公司名  -->
        a.USER_ID AS "userId",                 <!-- 使用人id  -->
        (select b.u_cname from sys_user b where b.USERID = a.USER_ID) AS "userName",     <!--     使用人姓名        -->
        a.REMARK AS "remark",
        a.CREATE_BY AS "createBy",
        a.CREATE_DATE AS "createDate",
        a.UPDATE_BY AS "updateBy",
        a.UPDATE_DATE AS "updateDate",
        a.STATUS AS "status",      <!-- 0正常1停用  -->
        a.SNO AS "sno",            <!-- 加密狗设备编号(usb外表的号码)   -->
        a.NO AS "no",               <!-- SN,加密狗内部序列号  -->
        a.LOGIN_DATE_SNO AS "loginDateSno"                <!-- 加密狗登录时间  -->


    </sql>
 SELECT
        *
  
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值