以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=102833) |
||||
-- 作者:zhu_cn -- 发布时间:2017/6/26 16:29:00 -- [求助] 请问专家: 我用sql查询表时,在建立左查询时如何限定右表中的数据。比如 select * fro m a left join b on a.id=b.id and b.date=#2016-08-01# 后面下划线部分能够实现吗?
|
||||
-- 作者:有点色 -- 发布时间:2017/6/26 17:27:00 -- 尽量这样写
select * from a left join b on a.id=b.id where b.date=#2016-08-01# |
||||
-- 作者:zhu_cn -- 发布时间:2017/6/26 18:30:00 -- 这样写有个问题,就是左表对应右表时会有一些空的数据(左表有的,右表不一定有),而我是想把右表数据先按条件筛选出来后再进行查询。 比如说,左表是我的设备(通过电话卡号标识),右表是移动账单,每月都会记账。而有些设备没有使用就不产生费用,在右表里就没有数据。如果用你给的sql语句就显示不出来这些对应的数据了,有什么方法吗?
|
||||
-- 作者:有点色 -- 发布时间:2017/6/26 18:50:00 -- select * from a left join (select * from b where b.date=#2016-08-01#) as c on a.id=c.id |
||||
-- 作者:zhu_cn -- 发布时间:2017/6/27 9:14:00 -- 谢谢,你的这个方法确实能够解决我的需求。这个方法在查询表生成器里可以实现吗? |
||||
-- 作者:有点蓝 -- 发布时间:2017/6/27 9:36:00 -- 可以的,试试就知道了 |
||||
-- 作者:zhu_cn -- 发布时间:2017/6/27 11:50:00 -- 下面是我的s elect语句,有一个错误, from 子句语法有误,拜托帮我看看
|
||||
-- 作者:有点色 -- 发布时间:2017/6/27 12:26:00 -- Select 客户ID,设备ID,SIM卡号,计费日期,终止日期,终止原因,计费状态,换号号码,账单月份,起始日,费用总计,一级账目名称,一级账目金额,二级账目名称,二级账目金额 From {客户设备} as a Left JOIN (select * from {移动账单} where [起始日]=#2016-08-01#) as c ON c.[SIM号] = a.[SIM卡号] Group By 客户ID,设备ID,SIM卡号,计费日期,终止日期,终止原因,计费状态,换号号码,账单月份,起始日,费用总计,一级账目名称,一级账目金额,二级账目名称,二级账目金额 Order By 客户ID,计费日期,终止日期 |
||||
-- 作者:zhu_cn -- 发布时间:2017/6/30 12:40:00 -- 真的很佩服您,您对sql语言很精通,我试过了真很好用。我还想请教一下,如果是多个表建立查询,还想用到子查询,怎么办呢? 附录是两个查询,第一个没有问题,可以多表查询,但没有加子查询。第二个加了子查询,但有问题了,您给看看怎么改一下。
|
||||
-- 作者:有点蓝 -- 发布时间:2017/6/30 14:14:00 -- 附录在哪? |