永发信息网

数据库表A如何关联另一个表某字段最大值对应的内容

答案:2  悬赏:60  手机版
解决时间 2022-01-01 03:30
比如有表A,表B,A表是卡号 kid,姓名 name,B表是,卡号 kid,消费时间 time ,消费商品 item,商品单价price,数量 num等等。
我想通过A表的卡号关联B表卡号,并且只显示消费时间这一字段最大的那一行的数据。
我现在只能用
select * from A a left join B b on a.kid=b.kid and (b.kid,b.time) in (select c.kid,max(c.time) from B c where c.kid=a.kid group by c.kid)
这种写法太复杂,有没有简便的方法
最佳答案
SELECt 全部字段
  FROM (SELECt 全部字段,
               --根据A.KID分组后按照B.TIME倒序编号
               ROW_NUMBER() OVER(PARTITION BY A.KID ORDER BY B.TIME DESC) RNO
          FROM A A
          LEFT JOIN B B
            ON A.KID = B.KID) C
 --去编号为一的数据,也就是时间最大的那一行数据
 WHERe C.RNO = 1;看起来不复杂的倒是没有,效率高一点的倒是有一个
全部回答
需要用到函数mid(string, start[, length]) ,与函数len(string)函数, 其中的length长度使用 len(2008-09-29 08:36:20)取得即可,这样就可以了, 具体的sql语句为: update 表 set 字段=mid(字段,1,len(2008-09-29 08:36:20)) 呵呵,应该将问题解决了,^_^
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一品排骨面怎么做
在安装软件过程中出现error writing to file:
想知道: 盐城市 盐城商检局 在哪
能使澄清石灰水变浑浊的气体是A.N2B.O2C.COD.
2015年新款羽绒服1000元左右的
判断题x=0不是方程.
要做一个贴近大学生生活的调查问卷,想问下可
韩模拍摄平面 一般是怎么收费的
华为手机gsm anto (prl)显示灰色怎么办
七(1)班学生开展义务植树活动,参加者是未
方正宽带不能做端口映射吗
广州市越秀区去白云机场坐机场大巴哪里最近
(2009浙江宁波质检)¾It’s getting da
孩子们像什么比喻句
下载并安装亿富鼎电话
推荐资讯
什么茶泡水喝对嗓子好?
今天去面试一家公司,领导说员工工作不积极,
禅城桥我想知道这个在什么地方
亿利毛绒我想知道这个在什么地方
吉尔多超市在什么地方啊,我要过去处理事情
黑龙江省八五六农场第一管理区工会委员会地址
铁掌柜老火锅怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?