如何用sql语句查询表字段两张表中的相同字段数据

SQL语句查询,同表group by 提取有两个相同字段的数据 - Oracle开发 - 网站开发技术
帮助别人就是帮助自己!
如果这里解决了您的问题,请您点一下推荐
SQL语句查询,同表group by 提取有两个相同字段的数据
表结构tb_submit(有主键,keyid)
custid submit date
现在想要提取tb_submit其中的数据。
同个custid下 有两条submit为err状态,且两个err状态的时间相差10秒内,跪求代码!
比如上面的例子,就会提取出
custid submit date
谢谢各位大牛!!!。
不知道你下面的为什么要查出来?
这2条记录的时间 都相差快1个小时了。
哎呀呀,抱歉,帖子打错了,我修改下
引用 1 楼 u 的回复:
不知道你下面的为什么要查出来?
这2条记录的时间 都相差快1个小时了。
我打错了,这条记录不应该出现。
with t1 as
(select t.custid,
(t.day - lag(t.day) over(partition by t.custid order by day)) * 24 * 60 * 60 lday,
count(1) over(partition by custid) cnt
from tb_submit t
where t.submit = 'err')
from tb_submit t
where exists (select 1
where t.custid = t1.custid
and t1.lday &= 10
and t.submit = 'err';
with t1 as
select 1 keyid,1 custid,'err' submit,to_date(' 11:00:01','yyyy-mm-dd hh24:mi:ss') tdate from dual union all
select 2 keyid,1 custid,'ok'
submit,to_date(' 11:00:03','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 3 keyid,1 custid,'err' submit,to_date(' 11:00:04','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 4 keyid,2 custid,'err' submit,to_date(' 11:00:01','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 5 keyid,2 custid,'ok'
submit,to_date(' 11:00:03','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 6 keyid,2 custid,'err' submit,to_date(' 11:00:02','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 7 keyid,3 custid,'err' submit,to_date(' 11:00:01','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 8 keyid,3 custid,'ok'
submit,to_date(' 11:00:03','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 9 keyid,3 custid,'ok'
submit,to_date(' 11:00:02','yyyy-mm-dd hh24:mi:ss') tdate from dual
select t1.*
(select custid,(max(tdate)-min(tdate))*24*60*60 m_date
where submit = 'err'
group by custid) t2
where t1.custid = t2.custid and t2.m_date & 0
and t2.m_date & 10 and t1.submit = 'err'
--------------------------------------------------------------
引用 5 楼 HJ_daxian 的回复:
with t1 as
select 1 keyid,1 custid,'err' submit,to_date(' 11:00:01','yyyy-mm-dd hh24:mi:ss') tdate from dual union all
select 2 keyid,1 custid,'ok'
submit,to_date(' 11:00:03','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 3 keyid,1 custid,'err' submit,to_date(' 11:00:04','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 4 keyid,2 custid,'err' submit,to_date(' 11:00:01','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 5 keyid,2 custid,'ok'
submit,to_date(' 11:00:03','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 6 keyid,2 custid,'err' submit,to_date(' 11:00:02','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 7 keyid,3 custid,'err' submit,to_date(' 11:00:01','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 8 keyid,3 custid,'ok'
submit,to_date(' 11:00:03','yyyy-mm-dd hh24:mi:ss') tdate from dual
select 9 keyid,3 custid,'ok'
submit,to_date(' 11:00:02','yyyy-mm-dd hh24:mi:ss') tdate from dual
select t1.*
(select custid,(max(tdate)-min(tdate))*24*60*60 m_date
where submit = 'err'
group by custid) t2
where t1.custid = t2.custid and t2.m_date & 0
and t2.m_date & 10 and t1.submit = 'err'
--------------------------------------------------------------
这个效率应该还可以。。。
如果规定只能有2条'err'数据 在t2里面group by后面添加 having count(custid) = 2sql2000如何查询两张表中相同的列名
sql2000如何查询两张表中相同的列名
比如有两张表A和B:A中有列a, b, c, dB中有列c, d, e, f
(仅仅是例子)如何用一条SQL语句查询出两张表含有哪些相同的列(就上例而言,两个表包含相同的列c和d (仅仅是个例子))?
---------------------------------------------------------------------------
另外,我从别的地方找到了一些东西,比如
select a.name&&&&&& from (select * from syscolumns where id = object_id(N'A')) a&&&&&&&&&&& inner join&&&&&&&&&&& (select * from syscolumns where id = object_id(N'B')) b&&&&&&&&&&& on a.name = b.name
但是这个最后只显示了一个name。我把第一行的select a.name改为select a.*除了显示name,后边还有一堆不知道是什么的东西
小弟初学sql 请高手赐教 谢谢
select a.name&&&&&& from (select&c.name from syscolumns c&where id = object_id(N'A')) a&&&&&&&&&&& inner join&&&&&&&&&&& (select&d.name from syscolumns d&where id = object_id(N'B')) b&&&&&&&&&&& on a.name = b.name
这样试一试
提问者 的感言:这个问题已经解决了,感谢您的耐心回答! 满意答案
select a.name&&&&&& from (select * from syscolumns where id = object_id(N'A')) a&&&&&&&&&&& inner join&&&&&&&&&&& (select * from syscolumns where id = object_id(N'B')) b&&&&&&&&&&& on a.name = b.name
这个表示相同的列名没错。
syscolumns 里储存的所有列,
你改成*,就是全字段,后面的内容包括,字段类型,字段长度,是否可为空,等等。与该字段相关的内容。
可是这样写,运行之后只显示下边这个& 根本不是我要的结果啊 泪奔中。。。。。- -、
你是想显示2个name吗?
select a.name,b.name
&&&&&&& from((select& name &from syscolumns where id = object_id(N'A')) a&&&&&&&&&&& inner join&&&&&&&&&&& (select& name& from syscolumns where id = object_id(N'B')) b&&&&&&&&&&& on a.name = b.name
额。。不是啊 看来还是没有理解我的意思。
我是说:如果有两张表,我知道表名,比如表A和B,两张表中各有很多列,但是我不知道两张表中有没有相同的列。之前我说的只是个例子,不代表任何具体的东西。但是我现在想用一个SQL语句,查出表A和B中有哪些相同的列,如果有就select出来,没有就不列出(查找之前,我是不知道两张表中有没有相同的列的)。上边的代码只显示'name',但这不是我想要的。我想要的是A和B两个表中相同的列,把这些列显示出来。就之前我说的例子而言,显示结果为'a'和'b'两列。请指教,谢谢
上面的结果是: A表和B表中同名的字段,就是你说的列名。,人列出相同的,至于a.name还是b.name 结果都一样。
提问者 的感言:我知道怎么解决了,感谢各位的耐心回答!
其他回答 (2)
学编程去甲壳虫技术论坛 去那里学了的人没有不会这个的 包你会
* 指的是全部字段!你的表里有多少字段,都会被查询出来!
相关知识等待您来回答
编程领域专家查询两个表中字段个数不同,名称不同的SQL语句-ASP教程,数据库相关-虚拟主机资讯|虚拟主机动态
产品服务快速通道
----------------
==域名注册==
英文域名注册
中文域名注册
==网站推广==
==虚拟主机==
----------------
双线路虚拟主机
基本型虚拟主机
商用型虚拟主机
论坛型虚拟主机
功能型虚拟主机
Vip合租虚拟主机
虚拟主机性能对比
虚拟主机免费试用
机房速度测试
----------------
==租用托管==
服务器租用
----------------
==企业邮局==
购买企业邮局
----------------
==付款方式==
----------------
==联系我们==
您当前位置:->-> ->
查询两个表中字段个数不同,名称不同的SQL语句-ASP教程,数据库相关
作者:网友供稿
  西部数码-全国虚拟主机10强!20余项管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:&
此sql语句能对两个不同表不同结构不同字段进行查询,并且能分出哪个记录是属于哪个表中的
有两个表
table1结构如下
id title content
table2结构如下
id content bigclass smallclass
sql=&select id, title, content, as bigclass, as smallclass, tbl1 as tbl from table1 where title like %&&keyword&&% or content like %&&keyword&&% union select id,
as title, content,bigclass,smallclass, tbl2 as tbl from table2 where content like %&&keyword&&% order by id desc&
这条语句即可实现查询。
以asp为例,则通过
set rs=conn.execute(sql)
while not rs.eof
……
……
response.write rs(&tbl&)此值就是判断数据是哪个表的
……
……
rs.movenextwend
分析以上sql语句,其实也就是通过as把两个表中的字段名统一,字段数不够的用()括号内的,即空串代替,当然如果你愿意也可以用非空串代替如(this is bigclass belong to table2),这样也可便于区分是哪个表中的数据。此sql语句中巧妙地运用了tbl1 as tbl这条来判断语句是属于哪个表的,以便对数据进行处理,特别是对于站内搜索,搜索不同表时在一个页面显示结果,根据不同的表把不同的id值传入不同表所对应的显示页面,有的要用readnews.asp有的要用other.asp这类页面,用起来很方便。
欢迎大家一起探讨!
文章整理:西部数码--专业提供、服务
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:&
??????????
??????????
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
版权所有 西部数码()
CopyRight (c) 2002~ all right reserved.
公司地址:四川省成都市金牛区一环路北一段99号环球广场24楼 邮编:610031
电话总机:028-08 38
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028- 财务QQ:
售前咨询QQ:2182518
售后服务QQ:如何使用sql语句查询两张字段数不同的两张表相同字段名并列出字段名
[问题点数:100分,无满意结帖,结帖人wuruiaoxue]
如何使用sql语句查询两张字段数不同的两张表相同字段名并列出字段名
[问题点数:100分,无满意结帖,结帖人wuruiaoxue]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2011年 总版技术专家分年内排行榜第四2010年 总版技术专家分年内排行榜第九2009年 总版技术专家分年内排行榜第八
2011年10月 总版技术专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
2013年 总版技术专家分年内排行榜第二
2014年8月 总版技术专家分月排行榜第一2014年7月 总版技术专家分月排行榜第一2014年6月 总版技术专家分月排行榜第一2014年5月 总版技术专家分月排行榜第一2014年4月 总版技术专家分月排行榜第一2014年3月 总版技术专家分月排行榜第一2014年1月 总版技术专家分月排行榜第一2013年12月 总版技术专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。在ORACL数据库中表table1有字段codeid和cedename两个字段,表table2中也有codeid和codename字段,如何用一条SQL语句将这两张表的两个字段查询出来
采纳的答案
select codeid,cedename from table1
union all
select codeid,cedename from table2
~~~~
会把2张表的数据汇总在一起
没看懂,lz到底想干什么
select t1.codeid ,t1.cedename t2.cedename,t2.codeid ,tafrom table1 t1, table2 t2
没什么特殊要求吗?要没有的话上面的回答都能满足
说说你的要实现的目的,应该不是简单的把两个表的内容全部查询吧!两者表字段完全一样的字段之间有什么联系。
查询 这两张表的数据
&& select t1.codeid ,t1.cedename from& table1 t1
&&&& union all
&& select t2.codeid ,t2.cedename from& table1 t2
查询 这两张表的数据(去掉重复数据)
&& select t1.codeid ,t1.cedename from& table1 t1
&&&& union
&& select t2.codeid ,t2.cedename from& table1 t2
select * from table1 inner join table2 on table1.codeid=table2.codeid
已解决问题
未解决问题}

我要回帖

更多关于 sql添加字段语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信