SQL语句如何实现 select 一对一匹配数据呢?

问题描述

在ACCESS中,SQL语句如何实现select一对一匹配数据呢?比如有下面两张表:b1表:t1表:我使用以下的SQL语句:SELECTb1.*,t1.*FROMt1INNERJOINb1ON(t1.单位名称=b1.单位名称)AND(t1.金额=b1.金额)会得到b1表里面的数据重复出现与t1匹配,如下图:图中彩色标注的数据都是重复出现的,我想让b1表里面的某一条数据只能和t1表里面的数据只匹配1次,这样的SQL语句该怎么写呢?求助各位大神帮助

解决方案

解决方案二:
你这个innerjoin逻辑太诡异了吧……
解决方案三:
引用1楼starfd的回复:

你这个innerjoin逻辑太诡异了吧……

用查询设计器生成的SQL,请指点一下
解决方案四:
(t1.单位名称=b1.单位名称)AND(t1.金额=b1.金额)我虽然明白你的意思,但是实际上,这两个条件相等时,单号,时间不同的记录,应该不会只有一条吧你两个表,没关联的主键的么....感觉,你这两个表,根本就没实际的关系...如果你迎要凑一起,只取一条,MSSQL2005以上,那你可以用开窗函数.ACCESS里面,那你少取几个字段,分一下组看看了
解决方案五:
引用3楼yangb0803的回复:

(t1.单位名称=b1.单位名称)AND(t1.金额=b1.金额)我虽然明白你的意思,但是实际上,这两个条件相等时,单号,时间不同的记录,应该不会只有一条吧你两个表,没关联的主键的么....感觉,你这两个表,根本就没实际的关系...如果你迎要凑一起,只取一条,MSSQL2005以上,那你可以用开窗函数.ACCESS里面,那你少取几个字段,分一下组看看了

引用3楼yangb0803的回复:

(t1.单位名称=b1.单位名称)AND(t1.金额=b1.金额)我虽然明白你的意思,但是实际上,这两个条件相等时,单号,时间不同的记录,应该不会只有一条吧你两个表,没关联的主键的么....感觉,你这两个表,根本就没实际的关系...如果你迎要凑一起,只取一条,MSSQL2005以上,那你可以用开窗函数.ACCESS里面,那你少取几个字段,分一下组看看了

其实b1是个银行记录,t1是个开票记录,当b1的单位名称和t1的单位名称相等并且b1的金额和t1的金额相等时,认为这个对账成功了,所以想用这个SQL语句,其他的字段没办法做为对账确认的条件来用,还劳烦您再给个思路
解决方案六:
既然你可以认为,当单位和金额相等,那就OK那你语句就这么写:SELECTb1.ID,b1.金额,b1.单位FROMt1INNERJOINb1ON(t1.单位名称=b1.单位名称)AND(t1.金额=b1.金额)groupbyb1.ID,b1.金额,b1.单位
解决方案七:
不能distinct就用cte,再搭配rownumber函数,取你希望出现的

时间: 2024-11-17 04:11:38

SQL语句如何实现 select 一对一匹配数据呢?的相关文章

oracle goldengate-mybatis 打印的Sql语句可以再数据库查询到数据,但是没有返回结果?【急】

问题描述 mybatis 打印的Sql语句可以再数据库查询到数据,但是没有返回结果?[急] <select id="selectPageTblSfFiles" parameterType="TblSfFile" resultMap="TblSfFileResult"> SELECT <include refid="TblSfFile_columns" /> FROM TBL_SF_FILE WHERE

修改数据库字段-请问怎么用sql语句去修改sqlite中的数据字段的类型呢?

问题描述 请问怎么用sql语句去修改sqlite中的数据字段的类型呢? 我现在想写一个方法,用来修改sqlite数据库中某个表中的某个列的类型,因为现在客户需要发生变化了,我需要在数据完整的情况下吧数据类型给改变了,也就是说我不能替换数据库,哪就只有用sql语句去修改类型了,跪求高手... 解决方案 sqlite数据库中数据类型存在sqlite_master表中 select sql from sqlite_master where tb_name='tbname' 把这条sql语句改了,表结构

c++-如何利用C++来解析SQL语句中的select语句?

问题描述 如何利用C++来解析SQL语句中的select语句? SELECT * FROM stu WHERE ((Name = "Jack") AND ((Age > 18) OR (Height > 170))) 这是一条SQL语句,怎么用C++解析它,并从内存数据中输出结果?求大神给点思路即可.... 解决方案 你是要解析?还是要执行? 如果要执行SQL语句,需要学习ADO编程,可以百度一下vc ado编程. 解决方案二: 有c++和数据库对接的各种库的,mysql的

select-如何在vb2015中将sql语句本身作为文本存入mdb数据表内?

问题描述 如何在vb2015中将sql语句本身作为文本存入mdb数据表内? 在对MDB数据表进行新增或修改数据行后把当时的commandtext作为文本保存到特定数据表内: cmd1.CommandText = ""insert into dataupdate (rqckcommandtext) values ('"" & rq & ""''"" & ck & ""''&qu

server-使用SQL语句用计算的方式筛选数据

问题描述 使用SQL语句用计算的方式筛选数据 我有4列数据 序号 数量 1 100 2 23 3 37 4 45 然后我想数量输入 150 带出数据 序号 数量 1 100 2 23 3 27 这个怎么用SQL语句操作? 解决方案 你想要表达什么意思?说明白点... 解决方案二: 自己用存储过程搞定了,谢谢大家

web用sql语句访问是数据库时造成数据被覆盖

问题描述 web用sql语句访问是数据库时造成数据被覆盖 我的问题是这样的:云端有4个地址块0.1.2.3.我需要从这4个地址中读取数据,当道一个类中,然后把数据以曲线的形式呈现到页面.而且 我前端用的iframe静态加载数据.同时,var_type=1的iframe加载数据后紧接着var_type=3的iframe开始加载数据.我的做法: 第一步:我利用sql语句直接访问数据库.第二步:var_type=1访问块0数据,然后存放到his_dev0(是个类)中,var_type=3访问数据库块0

在ASP中使用SQL语句之1:SELECT 语句

select|语句|select 五花八门的SQL产品多得要命,或许你早顾不得其它甩开袖子就动手干了.但你要同时采用ASP和SQL的话就可能会头晕.MySQL.SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句.不过,你可以利用自己掌握的Access知识以及相应的Access技能,再加上我们的提示和技巧,相信一定能成功地在你的ASP网页中加入SQL. 在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用SQL

LINQ to SQL语句(2)之Select/Distinct

[1] Select介绍1 [2] Select介绍2 [3] Select介绍3和 Distinct介绍 Select/Distinct操作符 适用场景:o(∩_∩) o- 查询呗. 说明:和SQL命令中的select作用相似但位置不同, 查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结 果返回回来:延迟. Select/Distinct操作包括9种形式,分别为简单用 法.匿名类型形式.条件形式.指定类型形式.筛选形式.整形类型形式.嵌套 类型形式.本地方法调用形式

delphi sql 语句-delphi-sql-语句 实现月统计数据

问题描述 delphi-sql-语句 实现月统计数据 有两个表, 表A: 日期 数量 2014-1-10 4 2014-1-23 5 2014-2-5 7 2014-3-10 4 2014-3-23 4 表B: 日期 数量 2014-1-10 30 2014-1-4 7 2014-1-31 35 2014-2-1 70 2014-2-30 60 2014-3-1 55 2014-3-23 45 2014-3-31 50 想要的结果: 统计时间段 2014-1-10~2014-3-23 月份 A.