oracle left join 查询右表没有匹配到的数据

oracle left join 查询右表没有匹配到的数据,目前用的是 is null 做的判断,但是效率很慢,各位大神有没有高效一点的方法

select shd.*
from temp_termspastdue tmp join (select s.loan_no,s.ps_due_dt,
loan.cust_id,
loan.loan_grd,
loan.loan_actv_dt,
loan.orig_prcp,
loan.last_due_dt,
loan.OLD_LAST_DUE_DT,
loan.recentpaydt,
loan.typ_rat,
ct.loan_od_grace
from (select loan_no,ps_due_dt from CREDIT_LM_PM_SHD where PP_ER_IND='N' and to_date(ps_due_dt, 'yyyy-MM-dd') >= date '2016-01-01' and (setl_ind<>ps_od_ind or(ps_od_ind='Y' and setl_ind='Y')) ) s
join (select l.loan_no,
l.loan_cont_no,
l.loan_actv_dt,
l.last_due_dt,
l.last_setl_dt recentpaydt,
l.cust_id,
l.loan_grd,
l.Orig_Prcp,
l.OLD_LAST_DUE_DT,
typ.typ_rat
from ods_cmsg_lm_loan l, loan_typ_detail typ
where typ.typ_cde = l.loan_typ
and typ.upl_flg = 1
and typ.typ_rat='2'
and l.loan_sts = 'ACTV') loan
on loan.loan_no = s.loan_no
and s.ps_due_dt > loan.loan_actv_dt
join ods_cmsg_lm_loan_cont ct
on ct.loan_cont_no = loan.loan_cont_no
where to_date(s.ps_due_dt, 'yyyy-MM-dd') + ct.loan_od_grace <i_data_dt
) shd
on tmp.loan_no=shd.loan_no
join s01_tiu_person_all ps
on ps.cust_id = shd.cust_id
left join s01_tiu_trade_all al
on al.account = tmp.loan_no
and to_char(al.billingdate, 'yyyy-MM') =
to_char(to_date(shd.ps_due_dt, 'yyyy-MM-dd'), 'yyyy-MM')
where al.account is null;

1个回答

如尝试把s01_tiu_trade_all放在条件里
AND NOT EXISTS(SELECT 1 FROM s01_tiu_trade_all AS al WHERE al.account = tmp.loan_no and to_char(al.billingdate, 'yyyy-MM') =to_char(to_date(shd.ps_due_dt, 'yyyy-MM-dd'), 'yyyy-MM'))

LvYouQian
LvYouQian 非常感谢!
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
left join 右表多条数据重复
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mysql的left
LEFT JOIN右表为空查询不出数据
表结构如下 表Table_A: id name 1 张三 2 赵四 3 王五 表Table_B: id type 1 1 2 2 3 3 想查询出A表中所有的结果并关联B中特定字段,如下表 id name type 1 张三 1 2 赵四 null 3 王五 null 错误SQL: SELECT A.* ,B.ty...
left join 右表条数限制!
表A ,idrnrn表B ,id 、aid 、 title rnrn要求得到:rn根据A.id=B.aid为条件,获取 相对应的top 2 条数据。rnrna.id, b.id, b.titlern1 2 aaarn1 6 bbbrn2 7 ccccrn2 11 fffffrn3 8 iiiiirn3 9 ppppp
LEFT JOIN 查询多了数据
LEFT JOIN 的是以左边表为根据查询,要注意右边表与左边表on的字段一定要是唯一的,不然查询出来的条数,就一定比左边表多
Oracle中left join中右表的限制条件
无过滤条件的LEFT JOIN SQL中最简单形式的LEFT JOIN,是直接根据关联字段,以左表为基准,对右表进行匹配。在SELECT语句中选取的字段,如果有右表的记录(一般都是需要右表的某些记录的),取出配对成功的右表记录中对应的这个字段的值;否则,直接置NULL。这本身就是LEFT JOIN的特点:保证左表记录完整,右表只是辅助匹配。 直接看例子,为了演示,准备了两张测试表test1...
oracle中右表有过滤条件的left outer join
oracle中left outer join就是以左表作为基表来进行连接操作,连接的结果中一定会涵盖基表中所有的列,即使有某些列与右表找不到匹配关系。如下分别是city表和stds表中的数据截图:     现在执行以下语句: select city.name,stds.sid,stds.sname from city left outer join stds on city.id
两次left join 查询
t1_id是第一个球队的id号 t2_id是第二个球队的id号t1_score是第一个球队的的比分 t2_score是第二个球队的的比分第一行的含义是:3号球队韩国和4号球队澳大利亚的比分是1:2,比赛时间是1422694800需求:将每队的比赛列出 如 韩国 1:2 澳大利亚 1422694800 select t1.t_name as t1_name, m.t1_score, m.
SQL left join 查询
with tb1 asrn(select count(uid) as totalregister,ggsiteid rnfrom UserSystem where ggsiteid rnin(select code from PromotionCode where scode=102013)rn and ( regdate between '2013-03-05' and '2013-03-08') group by ggsiteid )rn, tb2 asrn(select sum(a.paymoney) as totalmoney,count(distinct(a.uid)) as totalpay,rnb.ggsiteid rn from user_czhistory as arnleft joinrn(select regdate,uid,ggsiteid from usersystemrnwhere ggsiteid in(select code from PromotionCode where scode=102013) rnand regdate>='2013-03-05' and regdate<'2013-03-08'rn)rnas brnon a.uid=b.uidrnwhere a.updatetime<=dateadd(dd,1,b.regdate) rngroup by b.ggsiteid)rnrnselect * from tb1 left join tb2rnon tb1.ggsiteid=tb2.ggsiteid rnrn表tb1数据:rn1516 1116rn1459 1117rn3457 1118rn890 1119rn1031 1122rnrn如果表tb2数据为:rn30 1 1117rn查询超慢,不出来rn如果数据为:rn290 5 1117rn610 3 1118rn1000 2 1119rn10 1 1122rn则可以查询出来rn这是什么原因
查询 left join
Rs.Open "SELECT stockbase.*, stockdata.*FROM stockbase LEFT JOIN stockdata ON stockbase.id=stockdata.sid WHERE stockbase.market=" & gs1 & " ", cnn, adOpenKeyset, adLockOptimisticrn我现在想加两个条件,stockdata表中还要满足datayear=combo1.text and dataseason=combo2.text 的选项给弄出来,怎么写啊?rn
oracle 使用left join
select plate.plateID,PlateName,PlateState,PlateRemarks,Topic.TopicTitle,AnswerCountA,userInfo.usernamernfrom platernleft join Topicrnon Topic.plateID=plate.plateID and TopicTope='置顶帖'rnleft join userInfornon Topic.userID=userInfo.userIDrnleft join (select TopicID,count(*) as AnswerCountA rnfrom Answer group by TopicID) [color=#FF0000]as[/color] userTopic rnon Topic.TopicID = userTopic.TopicIDrnwhere ParentID=:ParentIDrnrn这个语句在as那里报错,显示缺少关键字,这是什么错?我之前在SQL 2008里运行过是正确的,但是在ORACLE里面就有问题。。有没有大神可以解释下??
oracle 的外连接 left join
数据库里面有两张表 A表100W,B表20W,sql语句是[code=sql] select coun(1) from A left join B on a.id = b.id [/code] 查询结果执行10秒 rn 后面在写一条 [code=sql]select count(1) from B inner join A on B.id = A.id[/code] rn查询结果只需0.几就出来了 给我的感觉就是第一条没用到索引 为什么会出现这种情况?rn如果直接用 [code=sql]select count(1) from A ,B where a.id = b.id[/code] 执行效果和第二条差距不大.rn 我以前主要是在sqlserver上面开发,现在突然发现在oracle上执行一样的语句效率还要低些,现在大多数sql语句都是用的外连接,杂办?难道只有改代码?
ss2h 同一个表left join查询问题
[color=#FF0000]struts2输出标签为:[/color]rn,rnrn [color=#FF0000]hibernate查询代码[/color]rnrnfinal String sql= "select * from user A left join (select * from user) B on A.Parentid= B.id order by a.id desc";rnQuery query = session.createSQLQuery(sql).addEntity(User.class).addEntity(User.class);rn其它代码省略,rnrnrn这样查询出来的结果都是第一个User表的结果,即top[0].VUserName=top[1].VUserNamern但如果是两个不同的表结果是正确的,rnrn问题:请问是不是同一个表不能这样查询呢!rnrnrn
3个表的left join 查询 问题
表Arnid name signrnrn表Brnid aid flag startdate enddate rnrn表C rnid aid backdate rnrnrn说明:这里只列出了查询时需要条件的关键字段,其他字段省略;B、C中的aid均为表A中id的外键;sign、flag为Boolean类型,startdate、enddate backdate均为date型。rn目标:表A中sign为1的 且 表B中flag为1的 (注:aid在表B中有重复,但只需要最近的数据;表C中的aid也有重复,同样根据backdate获取一条最近的tC.*)rn我的方法:rnselect tA.*,tB.*,tC.* from tArnleft join tB on tA.id=tB.aid where sign=1 and flag=1 and startdate in (select max(tB.startdate) from tB where tA.id=tB.aid)rnleft join tC on tA.id=tC.aid where backdate in (select max(tC.backdate) from tC where tA.id=tC.aid)rnrn提示第3行left附近有错误,请指教,我对比网上的资料看语法没问题,不知是哪里的问题rnrnrnrn
oracle left join查询sql优化
下面是我的sql 请问还可以怎么优化rnselect t.tuid,rn s.jobName,rn g.groupName,rn g.groupType,rn e.typeName,rn t.logMessage,rn t.logTime,rn c.descripTion,rn c.code,rn c.codeType,rn c.description logdetail,rn clogtype.description logtype,rn caction.description actionrn from schedule_log trnrn left join schedule srn on (t.jobid = s.tuid)rnrn left join schedule_group grn on (t.jobgroupid = g.tuid)rnrn left join schedule_group_type ern on (e.tuid = g.grouptype)rnrn left join schedule_log_code cactionrn on (t.action = caction.code and caction.codetype = 1)rnrn left join schedule_log_code clogtypern on (t.logtype = clogtype.code and clogtype.codetype = 2)rnrn left join schedule_log_code crn on (t.logdetail = c.code and c.codetype = 3)rn
三种方式查询A表的数据没有出现在B表的数据中(not in, left join, not exists)
A表(users) 字段: uid int not null primary key, uname nvarchar(30) not null B表(results) 字段: rid int not null primary key, uid int not null(引用users表的uid) 查询A表中的数据没有出现在B表中 1.使用 not in [c...
Oracle left join 查询 结果偏少
select t.instanceid,rn t1.related_ne6,rn t1.related_ne5,rn t1.school_name,rn t.cover_type,rn 'LTE' as net_type,rn t1.resname,rn t1.lac,rn t1.ci,rn t1.cell_id,rn '重庆' as area,rn '' as elsesrn from temp_school_zhc t1rn left join uia_date_eutrancell trn on t1.ci||t1.cell_id=t.enodeb_id||t.eutrancell_idrn /* t.enodeb_id = t1.cirn and t.eutrancell_id = t1.cell_id*/rn where t.uia_time_id = 20150526rn and t1.instanceid is null;rn --and t1.ci||t1.cell_id is null;rn --and t1.ci||t1.cell_id=160712rnrntemp_school_zhc 表中instanceid为空的有2405条,可是查询结果之后只有2155条。left join之后为什么查询出来的数据偏少,原因为 where子句将left join之后的结果过滤掉了一部分。更改为如下之后查询的结果变为2405条了。rnrnselect t.instanceid,rn t1.related_ne6,rn t1.related_ne5,rn t1.school_name,rn t.cover_type,rn 'LTE' as net_type,rn t1.resname,rn t1.lac,rn t1.ci,rn t1.cell_id,rn '重庆' as area,rn '' as elsesrn from (select * from temp_school_zhc t where t.instanceid is null) t1rn left join (select * from uia_date_eutrancell t where t.uia_time_id = 20150526) trn on t1.ci||t1.cell_id=t.enodeb_id||t.eutrancell_idrn /* t.enodeb_id = t1.cirn and t.eutrancell_id = t1.cell_id*/rn-- where t.uia_time_id = 20150526rn rn --and t1.ci||t1.cell_id is null;rn --and t1.ci||t1.cell_id=332111rnrn 虽然按照oracle的方式,where语句从下往上执行,可是执行的结果还是按照人的思维从上往下执行。
left join 数据为什么没有显示,分页
[code=sql]select top 10 a.Name as CName,b.* rnfrom Products b left join Categories arnon b.CategoryId=a.CategoryIdrnwhere b.Productid not in (select top 10 ProductId from Products order by b.lft,b.sort,b.ProductId)rnorder by b.lft,b.sort,b.ProductId[/code]
left join 丢失数据
SELECT 新起点用户表.ID, 新起点用户表.客户名称, 新起点用户表.手机卡号, zz.银行帐号, rn zz.存折帐号, ROUND(新起点用户表.己查话费总额 * 0.5, 2) AS 金额, zz.身份证rnFROM (SELECT 客户资料.手机卡号, 客户资料.身份证, 银行帐号表.银行帐号, rn 银行帐号表.存折帐号rn FROM 客户资料 LEFT JOINrn 银行帐号表 ON (客户资料.手机卡号 = 银行帐号表.手机卡号)rn WHERE 客户资料.退网日期 IS NULL) zz RIGHT OUTER JOINrn 新起点用户表 ON zz.手机卡号 = 新起点用户表.手机卡号rnORDER BY 新起点用户表.手机卡号rnrn用此代码执行后,新起点用户表内的身份证号列一项有个别数据丢失现象(原表中有身份证号),不知道为什么,请大家帮忙,谢谢
SQL--LEFT JOIN 右表多条数据解决方案
用到SQL中的LEFT JOIN时,在右表中存在多条记录,即一对多的情况时, 表结构与数据: CREATE TABLE `image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `productId` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`...
oracle left join 分页数据重复问题
问题描述:使用 Oracle 的多分页查询语句,不同页面之间出现数据重复,但是数据库的数据是正确的,查询全部的时候也能显示出来。 sql实例:SELECT * FROM(SELECT ROWNUM RN,TA.* FROM(SELECT A.*,B.* FROM TALBE_A A LEFT JOIN TABLE_B B ON A.ID= B.A_ID WHERE A.NAME='King'
Oracle -- left join查询结果不是左表的全部数据的解决方法
left join在实际应用中并不是查出数据都是左边的全部数据,为什么呢?看看自己的解决方法吧 SELECT T.xx, T1.xx, ... FROM xxx T LEFT JOIN xxx T1 ON T.ID = T1.ID WHERE T.xx = xx and T1.xx= xx本来想查T表所有符合条件的数据,但是结
Excel——如何将一个excel表格的数据匹配到另一个表中?
一、数据匹配步骤1. 确定两个表格之间的关系。在这里咱们可以叫【数据源表】和【被填充表】,数据源表就是被拿来参照的,被填充表就是咱们自己要填充信息的表。二者之间的联系:【数据源表】中的数据有一列和【被填充表】中的一列是有相同内容。在这里咱们可以称这一列为【公共列】。2.明确好了两表关系后,就开始操作了。下面我以两个表格为例。第一张图片上面的表格为【被填充表】,第二张图片为【数据源表】3. 插入公式...
Left Join 右表多条记录 如何取合适的第一条?
if EXISTS ( select name from sysobjects where name='A' and xtype='u' ) drop table Arngorncreate table A(ANAME varchar(20))rninsert into A values('alan')rninsert into A values('Alee')rninsert into A values('aspn')rnrnif EXISTS ( select name from sysobjects where name='B' and xtype='u' ) drop table Brngorncreate table B( id int, BNo varchar(10), UserLevel varchar(20), Name varchar(20) )rninsert into B values(6,'NO1','16','alan')rninsert into B values(1,'NO1','16','alan')rninsert into B values(2,'NO1','32','alan')rninsert into B values(3,'NO2','16','Alee')rninsert into B values(4,'NO3','32','aspn')rninsert into B values(5,'NO3','16','aspn')rnrnselect * From Arnselect * From Brnrnrnrn--错误方法rnselect * from a left join b on a.aname = b.namernwhere not exists (select 1 from b t where name = b.name and ID > b.ID)rnrn--drop table Arn--drop table Brnrn/*rnrn错误结果 子表相同的记录 取第一条ID记录rnAName Id BNo UserLevel Namernalan 6 NO1 16 alanrnAlee 3 NO2 16 Aleernaspn 5 NO3 16 aspnrnrnrn希望结果 子表相同的记录 到 UserLevel级别最高的记录rnAName Id BNo UserLevel Namernalan 2 NO1 32 alanrnAlee 3 NO2 16 Aleernaspn 4 NO3 32 aspnrnrn*/rnrn
Left Join 右表数据不唯一解决方法
A、B两表有关联,使用LEFT JOIN 进行连接查询,但如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数 。如下图,很尴尬是不是? 解决方法:这种情况需要保证B表的符合条件的记录是空或唯一,我们可以使用group by来实现 。 归根还是因为表的设计有问题或者表里面有垃圾数据导致的。
left join 右表为视图时的奇怪结果(SP3)
rnrn表A(AF1, AF2)rn表B(BF1, BF2)rnrn视图V:rnSELECT BF1 AS VF1, ISNULL(BF2, '') AS VF2 FROM 表Brnrn下面的查询语句,在表B无数据时,VF2列返回为'',而不是NULL.rnrnSELECT * FROM A LEFT JOIN V ON A.AF1=V.VF1rnrn在SP3中这个问题存在,而在SP4中,返回的就是NULL了.rnrn请问微软是在哪个FIX中解决的这个问题? 即KB #nnnnnn 中的nnnnnn具体号码是多少?
怎样用left join 可保证右表唯一?
select a.id,sum(a.sl*b.jg) from a left join b on a.id=b.a_idrngroup by a.idrnrn右表b会有重复记录,怎么去掉重复的记录?rnrn
多表链接查询(left join)
刚完成一个需求,统计用户的购买次数。前面已经left join 过多个表了,且里面已有count(1) 语句。相当于查询出了 用户表的信息。 现在是在此基础上再统计一次count(1),但此时需要再left jion 订单表。 思路: 把原来的查询结果作为一个子表a,再 left join 订单表 o 执行SQL大致简化如下: SELECT m.id ,COUNT(o.id) FROM
关于LEFT JOIN查询性能
有两个a,brn需要进行LEFT JOIN关联查询,A,B表记录数大概都在100W左右。rnSQL查询原形为:rn[code=html]rnselect an.time an_time,an.host an_host,an.tid an_tid,rn an.client_ip an_client_ip,an.client_port an_client_port,rn an.server_ip an_server_ip, an.server_port an_server_port,rn an.up an_up, an.down an_down, an.connect_time an_connect_time,rn an.disconnect_time an_disconnect_time, an.duration an_duration,rn an.target_type an_target_type,an.target_ip an_target_ip, an.target_port an_target_port,rn an.syn_rtt an_syn_rtt,an.error_info an_error_info,rn bn.time bn_time,bn.host bn_host,bn.tid bn_tid,rn bn.client_ip bn_client_ip,bn.client_port bn_client_port,rn bn.server_ip bn_server_ip, bn.server_port bn_server_port,rn bn.up bn_up, bn.down bn_down, bn.connect_time bn_connect_time,rn bn.disconnect_time bn_disconnect_time, bn.duration bn_duration,rn bn.target_type bn_target_type,bn.target_ip bn_target_ip, bn.target_port bn_target_port,rn bn.syn_rtt bn_syn_rtt,bn.error_info bn_error_infornfrom logsys.a an left joinrn logsys.b bn on an.tid = bn.tid and an.target_ip = bn.target_iprn rn where an.time >= 0 and an.time < 1408515318001 and bn.syn_rtt >= 1 and bn.syn_rtt < 10000rn and bn.down >= 100 and bn.down < 1000 and (an.host = 0 or bn.host= 0);rn[/code]
同一个表的left join 问题?
现在有这样一张表rnclass_id,class_name,class_codern1 电脑/网络/ 1000rn2 数码/手机/ 1100rn3 DIY配件 1001rn10 00是一个大类,10 01是该大类下的一个分类rn我现在得到一个小类的class_code然后想得到小类和该小类所属的大类记录。rn我使用rnSELECT * FROM Class A Left join class on class.class_code=left(@class_code,2)+'00'rnWHERE A.class_code=@class_codernrn得到的结果中有相同的列名,不是很理想。rn问大家有什么解决的方法
mysql left join查询求助
我有一个会员表user uid=2rn2张属性表rn属性表1rnid title attr uidrn1 title1 attr1 2rn2 title1 attr1 2rn3 title1 attr1 5rn属性表2rnid title attr uidrn1 title2 attr2 2rn2 title2 attr2 3rn3 title2 attr2 8rn我要用user表关联这2张表查询属性表1和表2uid都等于2的行,但是我用left join 关联这两张表时总是不成功,不知道那里错了,求高手看看
关于left join 查询的问题
如下语句,已经咨询很多高手,现在已经强制索引了rn表有200万数据rn[code=C#]rnselect /*+ index (表,索引名)*/ a.*,b.Name from A a left join B b where a.code=b.code where rownum=1rn[/code]rn但是速度还是非常慢,如果把left join 改为 inner join,就非常快,但是这里只能用left join ,rnrn相同的语句在sqlserver中运行仅仅需要几毫秒rn[code=C#]rnselect top 1 a.*,b.Name from A a left join B b where a.code=b.code where rownum=1rn[/code]rnrn不知道还需要如何该呀??
left outer join 查询疑问
我有两张表,表名分别是T_SINGLE_PERSON_INFO 和 T_RENTAL_PERSON_INFOrnrn这两张表的自段完全一样,都含有 ID, NAME,CERTIFICATE_NO,PHONE字段rnrnT_SINGLE_PERSON_INFO 中有一条数据rnID, NAME, CERTIFICATE_NO, PHONErn1 张三 530127195309165930 82345689rnrnT_RENTAL_PERSON_INFO 中有一条数据rnID, NAME, CERTIFICATE_NO, PHONErn1 李四 511525198911227313 85319625rnrn现在我用left outer Join 对这两张表进行关联查询rn rnsql 语句如下rn rnselect a.NAME,a.PHONE,b.NAME,b.PHONErnfrom T_SINGLE_PERSON_INFO as a rnleft outer join T_RENTAL_PERSON_INFO as b on a.ID = b.ID rnrn查询出的结果是:rna.NAME, a.PHONE, b.NAME, b.PHONErn张三 82345689 张三 82345689rnrn不知道是为什么?请指点!rnrnrnrn
三张表的Left Join查询
三张表的Left Join查询
关于LEFT JOIN的查询顺序
比如有多个LEFT JOIN ,rnselect * fromrna left join b on a.id= b.idrnleft join c on a.id = c.idrnleft join d on a.id = d.idrnrn请问这个查询进行查询是顺序是什么?是不是从左到右呢?
表之间的连接 left join on
得到分部门的门店信息报表sql
13个表left join ?
出现13个表left join 是表设计问题么?rn为了逻辑上的正确 设计了A 表 rn查询结果缺是 A表 join B C D E F G H I J K L M N O表rnB-O表均为字典表rn结果 查询就变成一长串 rnselect A.*,B.Name,C.Name,D.Name,E.Name,F.Name… from A left join B on A.b_id=B.id left join …rn不知是否可有优化处理,这样的查询结果太慢了!
3表left join的问题
[code=SQL]rn--结果1rncreate table #tb(id int identity,t varchar(23))rn insert #tb select convert(varchar(10),dateadd(day,number,'2010-09-20'),120) from master..spt_valuesrn where type = 'P' and number between 0 and datediff(day,'2010-09-20','2010-09-25')rn select count(b.id) as ip,#tb.t from #tb rn left join visitor_a b rn on #tb.t = convert(varchar(10),b.accesstime,120)rn rn group by #tb.id,#tb.trn drop table #tbrn--结果2rncreate table #tb(id int identity,t varchar(23))rn insert #tb select convert(varchar(10),dateadd(day,number,'2010-09-20'),120) from master..spt_valuesrn where type = 'P' and number between 0 and datediff(day,'2010-09-20','2010-09-25')rn select count(c.id) as pv,#tb.t from #tb rn left join tz_page c rn on #tb.t = convert(varchar(10),c.accesstime,120)rn group by #tb.id,#tb.trn drop table #tbrn[/code]rn怎么把结果一和结果二的SQL语句合在一起。rn我是这样写的。rn[code=C#]rncreate table #tb(id int identity,t varchar(23))rn insert #tb select convert(varchar(10),dateadd(day,number,'2010-09-20'),120) from master..spt_valuesrn where type = 'P' and number between 0 and datediff(day,'2010-09-20','2010-09-25')rn select count(b.id) as ip,count(c.id) as pv,#tb.t from #tb rn left join visitor_a b rn on #tb.t = convert(varchar(10),b.accesstime,120)rn left join tz_page c rn on convert(varchar(10),b.accesstime,120) = convert(varchar(10),c.accesstime,120)rn group by #tb.id,#tb.trn drop table #tbrn[/code]rn但是结果不对。rncount()求总数量的结果多出了很多。rn
ORACLE left join 条件的问题
a表 rnrnaid aname rn1 张三 rn2 李四 rnrnb表 rnbid aid bname rn没有数据 rnrnc 表 rncid bid cname rn没有数据 rnrnd表rndid aid bid cid dnamern1 1 嘿嘿rn2 1 呵呵rnrn'-------------------------------------------------rnselect a.*,b.*,c.* from a left join b on a.aid=b.aid left join c on c.bid=b.bid rn可以得到数据 rnrn 但是我还要加一个条件rn就是a.aiid = d.di rn这个条件怎么加在上面的SQL里呢?rnrn
oracle left join 问题请教
select distinct (m.id),rn l.id,rn (select abbrnamern from t_sys_department drn where d.zjjgdm = m.organizieuidrn and d.status = '1') mname,rn i.name,rn l.SATISFACTIONRATE,rn m.KEYWORD,rn m.WRITEMAN,rn m.url,rn m.originaluid,rn m.content,rn l.year || '年' || l.month || '月',rn m.title,rn m.messagehappentime,rn (select name from t_zwgk_item ii where ii.id = i.parentid),rn m.createtime,rn m.organizieuidrn from t_zwgk_message mrn left join t_jc_zwgk_proposal l on (m.id = l.zwgkuid)rn left join t_zwgk_item i on (l.zwgkuid = i.zwgkuid)rn where m.organizieuid = '732158786' order by l.SATISFACTIONRATE ascrnrnrn数据可以查到,为什么别名 l 和 i 表里面的字段没数据显示rnrnrnrn
请教ORACLE Left Join的问题
大家好,我现在遇到一个问题,希望有经验的同学帮忙解答一下,问题如下:rnrn有数据表A如下:rna1 a2rn1 1rn2 1rn2 2rn1 3rn2 3rn说明:a1列的值为枚举值(1,2),a2列值不确定,为正整数;rnrn数据表B如下:rnb1 b2rn1 30rn2 40rn3 50rn说明:b1列的类型和a2列完全一样,b2列不关心。rnrn现在我想要的结果如下:rnA.a1 A.a1 B.b2rn1 1 30rn2 1 0rn2 2 40rn1 3 50rn2 3 0rn说明:大概的思路是A表要left join B表,条件是A.a2 = B.b1,关键的需求如下:rn如果针对一个A.a2值,A表中存在A.a1 = 1的记录,则把B.b2关联到这条记录上,且A.a1=2对于的记录行B.b2=0;rn如果针对一个A.a2值,A表中不存在A.a1 = 1的记录,则把B.b2关联到A.a1=2记录上;rnrn初步的SQL如下:rnselect A.a1, A.a2, B.b2 from ArnLeft Join BrnON A.a2 = B.b1rnrn主要是B.b2如何实现,多谢!rnrn
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview