sql语句连接查询的问题

我现在有两张表,一张target目标表,一张费用表,目标表一个用户每个月就一条记录,比如设定的各个要完成的目标,费用表可能一个月有好几条记录,记录已完成的数据,表之间的关联用用户的ID,现在遇到问题,想在一个列表中展示目标数据和已完成数据,目标表有目标月份日期字段,费用表有生效日期字段
[table]
目标月份 目标标保 已完成标保 目标佣金 已完成佣金 目标件数 已完成件数
2012-11 1000 500 200000 2000 500 50
[/table]
我现在sql语句如下
[code="java"] select SALES_CODE,target.TARGET_MONTH as targetMonth,target.STD_PREM as stdPrem,target.BROKERAGE as brokerage,target.CASES as cases,
d.toStdPrem as totStdPrem,d.toBrokerage as totBrokerage,d.toCases as totCases
from AB_TARGET target inner join
(select sum(com.STANDARD_PAYMENT) as toStdPrem,
sum(com.FINAL_PAY_AMOUNT) as toBrokerage,
count(com.id) as toCases,com.SALE_ID,SOURCE
from COMMISSION_INFO com


<![CDATA[ com.EFFECTIVE_DATE >= #{targetMonthBegin}]]>


<![CDATA[ and com.EFFECTIVE_DATE <= #{targetMonthEnd}]]>


group by com.sale_id, com.source)d on target.SALES_CODE = d.SALE_ID

AND target.SALES_CODE = #{salesCode} and d.source='1801'



<![CDATA[ target.TARGET_MONTH >= #{targetMonthBegin}]]>


<![CDATA[ and target.TARGET_MONTH <= #{targetMonthEnd}]]>

      <if test="@Ognl@isNotEmpty(salesName)">
            AND target.SALES_CODE =#{salesName} 
        </if>
    <if test="@Ognl@isNotEmpty(sortColumns)">
        ORDER BY ${sortColumns}
    </if>
    </where>[/code]

查询出的数据不正确,比如目标表11月份和12月份有两条数据,而费用表仅11月份有数据,结果按照上面语句查询出来11月份和12月份的费用已完成的情况是一样的,正确的费用表12月份查出来相应已完成的记录应该为空,求解答

0
扫码支付0.1元 ×
其他相关推荐
sql语句连接查询.
sql语句连接查询. 接触sql语句这么长时间了,牵涉到连接的时候,总是google别人的.  今天好好学学sql 的连接查询  准备工作 : mysql5.6 建表语句 查询语句 select p.id_p,p.firstName,p.lastName,o.id_o,o.orderno from persons p,orders o where p.id_p=o.
关于SQL语句连接查询
本文仅做自学参考使用,感谢前辈们的细心总结,也欢迎有缘老哥前来订正~ SQL各种连接查询详解(左连接、右连接..) 一、交叉连接(cross join) 交叉连接(cross join):有两种,显式的和隐式的,不带on子句,返回的是两表的乘积,也叫笛卡尔积。 例如:下面的语句1和语句2的结果是相同的。 语句1:隐式的交叉连接,没有cross join。 select o.id, o...
sql查询语句——连接查询
若一个查询同时涉及两个以上的表,则称之为连接查询。 它包括等值连接,非等值连接,自然连接,自身连接,外连接和复合条件连接 一、等值连接,非等值连接,自然连接 表名1.列名1  连接运算符  表名2.列名2 当连接运算符为等号=时,称为等值连接;使用其它运算符时,称为非等值连接。 若在等值连接中把目标列中重复的属性列去掉则为自然连接。 查询每个学生及其选修课程的情况。 se
SQL常用的几种连接查询
一、内连接(Inner Join)select * from a inner join b on a.name=b.name;此语句的结果为同时匹配表a和表b的记录集。即内连接取的是两个表的交集。二、全外连接(full outer join)select * from a full outer join b on a.name=b.name;此语句的结果为表a与表b的并集,即任意一个表的内容都将被...
关于Sql嵌套查询与连接查询的转换
前几天,同事遇到一个问题——如何将嵌套查询改成连接查询。自己考虑之后,记录一下自己的想法。问题:两个表表一字段:CustomerID, CustomerName,Address表二字段:ContractID,CustomerID,ContractName要求:查出没有签订合同的客户信息。嵌套查询:select  * from 表一 where customerID not in(select di
SQL——连接查询与子查询
  连接查询        交叉连接 等值连接  内连接 外连接        左连接 右连接     笛卡尔积 结果为两个表行数的乘积 交叉连接 结果符合笛卡尔积     语法 cross join 或者 join 或者直接用&quot;,&quot;   等值连接: select 字段.... from 表1,... where 连接条件   内连接,合并具有同一列的两个以上的表...
sql的几种连接查询
-
SQL连接查询语句实例
SQL 连接查询分析语句,初学者的好资料
左外连接+查询条件+排序的SQL写法
SELECT DISTINCT a.*,GROUP_CONCAT(c.project_name) as projectNames FROM pg_contract_info a LEFT JOIN pg_contract_project b ON a.id = b.contract_id LEFT JOIN pg_project_info c ON b.project_id = c...
SQL的几种连接查询
引言    小编最近在公司一有时间就练练sql语句,因为小编的SQL语句太差了,因为小编不论是在现在的项目中还是前 的项目中都是使用的EF,不怎么使用原生的sql语句,这就导致sql能力是越来越差啊,但是sql是一个程序员的基本 素质, 所以不得不常常的练一练啊。下面就简单的总结一下四种常见的连接查询。   概念介绍   1、内联接:典型的联接运算
SQL查询左连接、右连接、内连接
1、左连接的定义:是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。 下边以A表和B表为例子,A、B之间的左连接条件为:ano=bno;查询语句为:SELECT * FROM `A` LEFT JOIN B  ON ano=bno; eg1:A表中的只有1条记录,B表中2条记录...
数据库SQL语句-----单表多表连接查询实例
查询所有学生语文科目成绩,按成绩高低排名 SELECT A.ID,A.NAMES,B.SCORE FROM STUDENT A JOIN SCORES B ON A.ID=B.STUDENT_ID WHERE B.SUBJECT_ID='YW' ORDER BY SCORE DESC UNION ALL 查询 SELECT * FROM SCORES UNION ALL //并起来,行数与...
SQL语句左连接带子查询
CREATE OR REPLACE VIEW FEEDBACK_VIEW AS SELECT w.*,f1.SUBJECT ReplySubject,f1.CONTENT ReplyContent,f1.NAME ReplyName,f1.EMAIL ReplyEmail,f1.COMPANY ReplyCompany,f1.CREATETIME ReplyTime     FROM (SEL...
2.SQL语句之多表(连接)查询
0.概述 作用:当所需要查询的数据分布在多张表上时,需要使用多表查询(连接查询) 方式:  1.SQL92多表查询        2.SQL99多表查询    两种方式均可,其中SQL92书写方便阅读困难,SQL99书写较麻烦,但阅读很方便,而且符合逻辑(下文会体现),两种方式都有使用,所以都要学习。不过更推荐SQL99。 1.SQL92多表查询 笛卡尔积 笛卡尔积也称直积,两个集合X...
SQL 連接查詢
SQL连接查询 SQL server SQL连接查询 SQL连接查询 SQL连接查询
SQL语句,多表查询,连接查询,嵌套查询,集合操作,有IN谓词,有比较运算符,有ANY\EXIST谓词的查询
---查询每个学生及选修课程的情况 SELECT S.*,SC.*  FROM S,SC WHERE S.SNO=SC.SNO; ---查询每个学生及选修课程,这个是用自然连接弄的,结果同上 SELECT S.SNO,SNAME,SEX,AGE,SDEPT,CNO,GRADE  FROM S,SC WHERE S.SNO=SC.SNO; ---查询每一门课的间接先修课程 SELE
数据库连接查询时的注意事项
查看的sql的技巧
SQL中的连接查询与嵌套查询
连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询, 包括: 1、等值连接查询 2、自然连接查询 3、非等值连接查询 4、自身连接查询 5、外连接查询 6、复合条件查询 等值与非等值连接查询: 比较运算符主要有=、>、=、)等。 下面来看一个例子: 假设有一个学生数据库,其中有三张表,即学生信息表(Student
sql语句 连接查询 运算 if语句
select t.seriesId,t.seriesName 剧集名称,t.channel 频道,t.categoryName 分类名称,t.episodes 集数,m.totalDuration 总时长秒,m.totalSize 总大小M,IF(t.status=0,'上架','下架') 状态 from (select series_id,series.id seriesId,series.na...
关于多表查询sql常用的连接语句:左外连接、右外连接、内连接
1)内联接:    内联接使用比较运算符(使用像 =  或 )根据每个表共有的列的值匹配两个表中的行,根据这两张表中相同列的条件,得出其交集。例如:  检索 students和courses表中学生标识号相同的所有行。    2)左向外联:       是用的是LEFT  JOIN或LEFT OUTER JOIN     连接语句。       根据两张表的关系(外键关
mysql&oracle;语句自动生成工具
解压之后安装使用,内部是mysql和oracle数据库生成工具,可以生成sql语句,连接查询。解压之后安装使用,内部是mysql和oracle数据库生成工具,可以生成sql语句,连接查询
【数据库】SQL语句分析之Union联结查询
         前言 展示SQL语句 分析SQL语句   一、union语句   二、条件语句   三、查询结果图 小结 前言     小编最近在项目中接触到一个超长的SQL语句,发现里面的语法很丰富,可以拿出来记录一下,当然也有将其中重复的部分进行删减,方便博友们进行查看分析。 展示SQL语句     SQL语句查询,作用是从两张表 t_card_order 和 t_car...
SQL从入门到出门 第8篇 多表连接查询
本篇介绍SQL:2016(ISO/IEC 9075:2016)标准中定义的多表连接查询语句(JOIN),以及六种主流数据库中的实现及差异:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、Db2、SQLite。
嵌套查询与连接查询的性能
嵌套查询与连接查询的性能:连接查询一般较快;子查询很难被优化。(当然和DB优化有关,也可能子查询比连接查询快)其实不能一概而论的~~ 不过,问了下DBA同学,他建议是能用join的,尽量不要用嵌套查询。以下内容,部分是来自网上的一些观点,自己稍加整理的。    子查询是实现关联式计算的一种实例,连接实现了关联式代数。关于关联式计算(relational calculus)和关联式代数(rel
sql连接查询方式有哪些
-
SQL连接查询及性能分析
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。 连接可以
左连接和右连接的sql语句
select ro.id roleId,ro.role_name roleName,funlist.id funId, funlist.fun_name funName,funlist.fun_parent_id funParentId, rfmap.allow_manager allowManager, case when ro.id is null then 0 else 1 end as i...
hibernateHQL关联查询
Hibernate中的关联查询实际上生成的是数据库表连接查询的SQL语句
连接查询和分组查询
《升序》ASC  《降序》DESC relationship *** 分组查询: ** 使用 group by 进行分组查询 语句:《有列名:StudentID,CourseID,Scores》 select CourseID,avg(S cores) as 课程平均成绩 from Score group by CourseID 例 1:查询男女学生的人数各是多
sql语句_自连接_外连接_左连接_子查询_排序_分组
数据库 sql语句 分为DDL,DCL,DLL 1),DDL,data define language: 新建一个数据库 ceate创建 alter修改 drop删 这三条语句,在下面几个组件中,都可以用得到 数据库分为下面几个组件 a,数据库,datab
三表左连接查询的sql语句写法
今天要查询所有realname的username,psw,gname,tel 表结构: 表t1 字段名:t1_id,username,psw 表t2 字段名:t2_id,gname,t1_id //这里一个t1_id对应多个t2_id t3 字段名:t3_id,realname,tel,t1_id //这里一个t1_id对应一个t3_id 遇到的麻烦是当一个realname在t2表中没有内容时,也
SQL Server数据库连接查询的种类及其应用
在数据库开发方面,通过单表所表现的实现,有时候需要组合查询来找到我们需要的记录集,这时候我们就会用到连接查询。   连接查询主要包括以下几个方面:   内连接   内连接一般是我们最常使用的,也叫自然连接,是用比较运算符比较要联接列的值的联接。它是通过(INNER JOIN或者JOIN)关键字把多表进行连接。我们通过建立两个表来说明问题: StudentID StudentNa...
连接查询与union查询
连接查询 连接查询包括下面3中查询方式: inner join(内连接查询): 对于 A表和B表来说,要想查询两张表相同的数据,可以通过    select 字段1,字段2,... from A inner join B on where A.字段=B.字段 left join (左连接查询): 对于A表和B表来说,如果要进行左连接查询,数据库就会以左表为基准,从右表中找出与左表相匹配的数据...
SQL join多表连接查询(详细实例)
例子: $sql =&quot;select a.id,a.u_id,a.c_id,a.p_id from aleft join b on a.u_id=b.id where a.read_ok=$s0 order by a.id desc&quot;; 联合在一起了,如何取得各字段的值,就是要select a.id,a.u_id,a.c_id,a.p_id from中列出需要各表字段,用*是没用的   本...
SQL连接查询总结和练习
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,是它区别于其它类型 数据库管理系统的一个标志。连接可以在SELECT 语句的FROM子句或WHERE子句中建立,在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。一般来说,连接查询比嵌套查询的效率高一点。所以,在Transact-SQL中推荐使用这种方法。   SQL-92标准所定义的FROM子句的连接
SQL的四种连接查询
今天在做招标系统的时候,想通过招标编号把投标商、评分项、评标专家几个表中相关联的字段查询出来。一般以往的做法是把这些字段放到一张视图里,但现在我只是想看看查询出来的结果是否与测试操作相符,没必要建一张视图,于是就想到了今天我们要说的这几种连接,下面以SQL中的一个小Demo为例进行说明:         SQL数据库中有两张表,一张人员(T_Person)表、一张卡(T_Card)表,人基本上都
记录SQL查询左连接,和Where的一次坑
问题描述:需要从两张表中查询想要的结果,通过两张表都有的相同字段进行关联查询。 比如,先用Where 进行查询: 注意,这里是用Where 进行关联查询的,可以查询到结果。问题还没暴露。 用SQL 左连接进行查询: 这里用的是左连接进行查询,同样可以获取查询结果。现在,如果进行字符串 like 匹配查询: 问题开始暴露!!! 从截图可以看到,用Where 关联查询,从b.ca
SQL语句的各种连接查询
连接查询,等值和非等值连接 SELECT * FROM STUDENT,SC WHERE STUDENT.SNO=SC.SNO; 若在等值连接中把重复的属性列去掉,则为自然连接 SELECT STUDENT.SNO,SNAME,SSEX,SAGE,SDEPT,CNO,GRADE FROM STUDENT,SC WHERE STUDENT.SNO=SC.SNO; 自身连接,查询每一门
Oracle中SQL语句学习六((连接查询)
一、内连接和外连接     内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下:     Oracle代码   select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table
【0038】SQL查询--连接查询--自然连接
SQL不支持自然连接查询,方法是等值连接的基础上消除重复列 SELECT score.studentNo, score.courseNo, score.score, course.courseNo, course.courseName, course.creditHour, course.courseHour, course.priorCourse FROM score INNER JO
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 ios视频开发问题