在使用左联接时,遇到问题:
1、使用tab1,左联接tab2;
2、tab1有4条数据,tab2中对应tab1的4条数据 有>4条数据与之对应;
3、简单使用左联接之后,会出现,数据总数是后面的tab2与之对应的条数。而不是tab1的总数。解决方案
select * from tab1 left join ( select * from ( select a.*,row_number() over(partition by b3 order by b1) r from tab2 a ) where r = 1 ) tab12 on a1=b3 其中a1,b3是两表的连接条件中的字段
以上感谢csdn的 Robin_Ares
后附上处理统计的相关sql,针对oracle,备忘
为了实现,如下报表功能:
使用sql 如下:
SELECT QYJG,JGMC,SUM(MONEY4) JYZE,SUM(COUNT4) CXZS,SUM(COUNT1) DJFZS,SUM(MONEY1) DJFJE,SUM(COUNT2) ZZZS,SUM(MONEY2) ZZJE,SUM(COUNT3) DKHKZS,SUM(MONEY3) DKHKJE FROM ( SELECT QYJG,JGMC,DECODE(JYDM,'7502', 1, 0 ) as COUNT1, DECODE(DECODE(JYDM,'7502', JYJE, 0.00 ),0,'0.00', trim(to_char(DECODE(JYDM,'7502', JYJE, 0.00 ),'99999999999999.99'))) as MONEY1, DECODE(JYDM,'1011', 1,'1012',1, 0 ) as COUNT2, DECODE(DECODE(JYDM,'1011', JYJE,'1012',JYJE, 0.00 ),0,'0.00', trim(to_char(DECODE(JYDM,'1011', JYJE,'1012',JYJE, 0.00 ),'99999999999999.99'))) as MONEY2, DECODE(JYDM,'1100', 1, 0 ) as COUNT3, DECODE(DECODE(JYDM,'1100', JYJE, 0.00 ),0,'0.00', trim(to_char(DECODE(JYDM,'1100', JYJE, 0.00 ),'99999999999999.99'))) as MONEY3, DECODE(JYDM,'1011', 0,'1012',0,'7502',0,'1100',0, 1 ) as COUNT4, DECODE(DECODE(JYDM,'1011', JYJE,'1012',JYJE,'7502',JYJE,'1100',JYJE, 0.00 ),0,'0.00', trim(to_char(DECODE(JYDM,'1011', JYJE,'1012',JYJE,'7502',JYJE,'1100',JYJE, 0.00 ),'99999999999999.99'))) as MONEY4 FROM ( SELECT BT.ZHDH ZHDH ,BT.JYJE JYJE,BT.JYDM ,( select displayvalue from SYSENUMITEM t where t.enumid = ( select enumid from SYSENUM ss where ss.fieldname='BRANCHNO' and ss.tablename = 'PUBLIC' ) and CS.QYJG = T.FIELDVALUE AND T.FIELDVALUE LIKE '%' ) JGMC, QYJG FROM (SELECT * FROM B_TRANS_LOG WHERE JYRQ >= $P{t_bgnDate} AND JYRQ<= $P{t_endDate} AND JYJE >0 AND ZJJYZT= $P{t_transResult} ) BT left join ( select * from ( select a.*, row_number() over(partition by a.ZH order by a.ID ) r from DEMO a ) where r = 1 ) CS ON BT.ZHDH = CS.ZH ) ) GROUP BY QYJG
相关推荐
本文实例讲述了thinkPHP5框架实现多数据库连接,跨数据连接查询操作。分享给大家供大家参考,具体如下: 1. 多数据库连接 方法1:在需要连接其他数据库的地方,使用Db::connect()方法动态连接数据库,方法参数为...
SQL左联右联的通俗解释,本人亲自原创!
使用时,只要将现有的功能名称,菜单名称维护到中继器的数据集,即可实现。新建功能时,保持功能在菜单模块下,且功能名称与中继器中维护的功能名称一致,即可实现菜单与功能的关联,实现功能的动态切换。
Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录
oracle sql心的 平时 (学习记下来的) oracle sql心的 平时 (学习记下来的)
初中语文文学讨论现当代文学鲁迅与左联
主要介绍了MySQL左联多表查询where条件写法示例,本文直接给出写法示例,需要的朋友可以参考下
1、界面描述:分为左侧菜单功能区,右侧为上方是打开菜单区,下方是打开的功能显示区。
摘要:C#源码,数据库应用,左外连接 C#使用左外连接查询数据,使用left outer join查询,本实例所需的数据库文件在Database文件夹中,测试前请自行附加。
本书介绍微软最前沿的数据查询编程技术,内容由160个知识点实例加5个综合应用案例组成,光盘中提供了涉及到的全部示例源程序项目,对于将要从事正规商业开发的人员有很强的示范性和指导作用。 内容提要 -----------...
主要介绍了inner join 内联与left join 左联的实例代码,需要的朋友可以参考下
FROM子句关键字 相应的结果集 CROSS JOIN 笛卡尔乘积(所有可能的行对) INNER JOIN 仅对满足连接条件的CROSS中的列 LEFT OUTER JOIN 一个表满足条件的行,和另一个表的所有行 RIGHT OUTER JOIN 与LEFT相同,但两个...
sqljoin示例,包含左联右联内联以及外联等连接方式是学习SQL必不可少的知识
[Q]怎么实现左联,右联与外联 9 [Q]怎么实现一条记录根据条件多表插入 10 [Q]如何实现行列转换 11 [Q]怎么样实现分组取前N条记录 13 [Q]怎么设置存储过程的调用者权限 13 [Q]怎么快速获得用户下每个表或表分区的记录...
通过分析左连接(+)加号的写法和一些常用语法之间的联系,了解到Oracle 加号(+)的用法。本文重点给大家介绍Oracle 左连接(+)加号用法及常用语法之间的关系 ,感兴趣的朋友跟随小编一起看看吧
C# Lamda表达式简单运用
zip包含数据库文件 创建一个数据库为...R:遍历数据库表当中所有的宠物的编号,宠物名称,种类,状态 使用左联查询 左边的表为从表 U 可以根据查询宠物的名字,修改宠物的状态 D: 根据编号可以删除宠物