Foxtable(狐表)用户栏目专家坐堂 → 求教SQL语句


  共有3236人关注过本帖树形打印复制链接

主题:求教SQL语句

帅哥哟,离线,有人找我吗?
baoxyang
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
求教SQL语句  发帖心情 Post By:2014/6/25 13:53:00 [只看该作者]

表A,   列a1,a2,a3

表B,   列b1,b2

希望selec a.*,b.b2  from 表A a left join 表B b on a.a1 = b.b1

但b2只希望是最后一条记录

这个SQL语句如何写,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/25 14:03:00 [只看该作者]

不是很明白你的意思.

 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2014/6/25 14:07:00 [只看该作者]

有两表,表A及表B,关联列相同值,表B会存在多列,只需要显示表B最后一列内容.这样查询语句如何写
[此贴子已经被作者于2014-6-25 14:07:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/25 14:09:00 [只看该作者]

select c.*, (select top 1 d.b2 from {表B} d where d.b1 = c.a1) from (selec a.*, b.* from 表A a left join 表B b on a.a1 = b.b1) c

 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2014/6/25 14:11:00 [只看该作者]

select a.托运单号,a.商场编号,a.客户简称,a.目的城市,a.条码单号,IsNull(d.预约内容,a.备注) as 预约内容 from 托运单据 a left join (Select c.* from (Select max(ID) As id,托运单号 from 托运预约 group by 托运单号) b left join 托运预约 c on b.id = c.id and b.托运单号 = c.托运单号) As d on a.托运单号 =d.托运单号 ,条码单据 as p where a.条码单号 = p.条码单号 and p.状态 <> '初始' and a.单据状态 = '开单入库' and a.销单否 = '否'  and a.标记 = 0 and (a.预约状态 = '已预约' or a.预约状态 = '不需要')

这个语句是三表关联,能优化吗?查询速度太慢了.


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2014/6/25 14:20:00 [只看该作者]

我要的结果是:首先是托运单据表与条码单据表,相关联列为条码单号,满足条件是条码单据表不等于'初始',而且托运单据表中需要满足条件a.单据状态 = '开单入库' and a.销单否 = '否'  and a.标记 = 0 and (a.预约状态 = '已预约' or a.预约状态 = '不需要'),得到所有托运单据表数据.再需要满足托运预约表相关联列为托运单号,只显示为满足条件最后一条记录的d.预约内容,上面SQL语句可以满足我要的数据,但查询慢度有问题.可能是语句有问题.请帮修改下!先谢了!!

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2014/6/25 15:18:00 [只看该作者]

select a.托运单号,a.商场编号,a.客户简称,a.目的城市,a.条码单号,IsNull(d.预约内容,a.备注) as 预约内容 from (Select * from  托运单据  

where 单据状态 = '开单入库' and 销单否 = '否'  and 标记 = 0 and (预约状态 = '已预约' or 预约状态 = '不需要')) as a

left join (Select c.* from (Select max(ID) As id,托运单号 from 托运预约 group by 托运单号) b left join 托运预约 c on b.id = c.id and b.托运单号 = c.托运单号) As d on a.托运单号 =d.托运单号 ,条码单据 as p where a.条码单号 = p.条码单号 and p.状态 <> '初始' 


具体你在看看,应该已经提升很多了




 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23140 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2014/6/25 15:49:00 [只看该作者]

谢了,试试看


 回到顶部