SQL联合查询两个表的数据
刚有个项目,需要查询水位数据表中的水位信息,及查询降雨量表中统计时段降雨量的数据,以计算出日降雨量,而且时段是前一天8时到后一天8时总共24个小时。
两个子查询:
1、根据当前时间判断统计前天8时到今天8时还是大前天8时到前天8时的时段雨量;
select STCD,SUM(DRP) as drp2
from Jialiang.dbo.ST_PPTN_R
where
STCD=''and
TM>case
when Datename(hour,GetDate())>=8 then CONVERT(varchar(100), GETDATE()-1, 23)+' 8:00' else CONVERT(varchar(100), GETDATE()-2, 23)+' 8:00' end
and
TM<case
when Datename(hour,GetDate())>=8 then CONVERT(varchar(100), GETDATE(), 23)+' 8:00' else CONVERT(varchar(100), GETDATE()-1, 23)+' 8:00'end
GROUP BY STCD
2、查询最新的水位数据
select STCD,Z
from Jialiang.dbo.ST_RIVER_R
where STCD='' and TM=(select MAX(TM) from Jialiang.dbo.ST_RIVER_R where STCD='')
最后把这两个查询结果根据设备编码联合起来
select a.Z,b.drp2 from(select STCD,SUM(DRP) as drp2
from Jialiang.dbo.ST_PPTN_R
where
STCD=''and
TM>case
when Datename(hour,GetDate())>=8 then CONVERT(varchar(100), GETDATE()-1, 23)+' 8:00' else CONVERT(varchar(100), GETDATE()-2, 23)+' 8:00' end
and
TM<case
when Datename(hour,GetDate())>=8 then CONVERT(varchar(100), GETDATE(), 23)+' 8:00' else CONVERT(varchar(100), GETDATE()-1, 23)+' 8:00'end
GROUP BY STCD) as b,
(select STCD,Z
from Jialiang.dbo.ST_RIVER_R
where STCD='' and TM=(select MAX(TM) from Jialiang.dbo.ST_RIVER_R where STCD='')) as a
where a.STCD=b.STCD
本文参考了
SQL获取当前时间的方法:http://www.cnblogs.com/weiqt/articles/2040800.html
DateName()还可以获得到小时、时间、秒、星期几、第几周,分别如下:
Select Datename(hour,GetDate())
Select Datename(minute,GetDate())
Select Datename(second,GetDate())
Select Datename(weekDay,GetDate())
Select Datename(week,GetDate())
使用Convert()函数:
select convert(char(10),GetDate(),120) as Date
* 第3个参数就是用来设置日期类型数据的显示样式的,下面介绍几种样式的参数:
100 mm dd yyyy
101 mm/dd/yyyy
102 yyyy.mm.dd
103 dd/mm/yyyy
106 dd mm yyyy
108 hh:mi:ss(时间)
111 yyyy/mm/dd
112 yyyymmdd
120 yyyy-mm-dd hh:mm:ss
23 yyyy-mm-dd
1 SELECT CONVERT(varchar(100), GETDATE(), 0) 05 9 2011 9:12AM
2 SELECT CONVERT(varchar(100), GETDATE(), 1) 05/09/11
3 SELECT CONVERT(varchar(100), GETDATE(), 2) 11.05.09
4 SELECT CONVERT(varchar(100), GETDATE(), 3) 09/05/11
5 SELECT CONVERT(varchar(100), GETDATE(), 4) 09.05.11
6 SELECT CONVERT(varchar(100), GETDATE(), 5) 09-05-11
7 SELECT CONVERT(varchar(100), GETDATE(), 6) 09 05 11
8 SELECT CONVERT(varchar(100), GETDATE(), 7) 05 09, 11
9 SELECT CONVERT(varchar(100), GETDATE(), 8) 09:13:14
10 SELECT CONVERT(varchar(100), GETDATE(), 9) 05 9 2011 9:13:14:670AM
11 SELECT CONVERT(varchar(100), GETDATE(), 10) 05-09-11
12 SELECT CONVERT(varchar(100), GETDATE(), 11) 11/05/09
13 SELECT CONVERT(varchar(100), GETDATE(), 12) 110509
14 SELECT CONVERT(varchar(100), GETDATE(), 13) 09 05 2011 09:13:14:670
15 SELECT CONVERT(varchar(100), GETDATE(), 14) 09:13:14:670
16 SELECT CONVERT(varchar(100), GETDATE(), 20) 2011-05-09 09:13:14
17 SELECT CONVERT(varchar(100), GETDATE(), 21) 2011-05-09 09:13:14.670
18 SELECT CONVERT(varchar(100), GETDATE(), 22) 05/09/11 9:15:33 AM
19 SELECT CONVERT(varchar(100), GETDATE(), 23) 2011-05-09
20 SELECT CONVERT(varchar(100), GETDATE(), 24) 09:15:33
21 SELECT CONVERT(varchar(100), GETDATE(), 25) 2011-05-09 09:15:33.140
22 SELECT CONVERT(varchar(100), GETDATE(), 100) 05 9 2011 9:15AM
23 SELECT CONVERT(varchar(100), GETDATE(), 101) 05/09/2011
24 SELECT CONVERT(varchar(100), GETDATE(), 102) 2011.05.09
25 SELECT CONVERT(varchar(100), GETDATE(), 103) 09/05/2011
26 SELECT CONVERT(varchar(100), GETDATE(), 104) 09.05.2011
27 SELECT CONVERT(varchar(100), GETDATE(), 105) 09-05-2011
28 SELECT CONVERT(varchar(100), GETDATE(), 106) 09 05 2011
29 SELECT CONVERT(varchar(100), GETDATE(), 107) 05 09, 2011
30 SELECT CONVERT(varchar(100), GETDATE(), 108) 09:16:38
31 SELECT CONVERT(varchar(100), GETDATE(), 109) 05 9 2011 9:16:38:543AM
32 SELECT CONVERT(varchar(100), GETDATE(), 110) 05-09-2011
33 SELECT CONVERT(varchar(100), GETDATE(), 111) 2011/05/09
34 SELECT CONVERT(varchar(100), GETDATE(), 112) 20110509
35 SELECT CONVERT(varchar(100), GETDATE(), 113) 09 05 2011 09:17:19:857
36 SELECT CONVERT(varchar(100), GETDATE(), 114) 09:17:19:857
37 SELECT CONVERT(varchar(100), GETDATE(), 120) 2011-05-09 09:17:19
38 SELECT CONVERT(varchar(100), GETDATE(), 121) 2011-05-09 09:17:19.857
39 SELECT CONVERT(varchar(100), GETDATE(), 126) 2011-05-09T09:17:19.857
40 SELECT CONVERT(varchar(100), GETDATE(), 130) 6 ????? ??????? 1432 9:17:19:857AM
41 SELECT CONVERT(varchar(100), GETDATE(), 131) 6/06/1432 9:17:19:857AM
SQL case when.. else..end 用法:
WHERE
WATRDJ>= case when P05_TRDJ_FM is not null then V_TRDJ_FM else WATRDJ end and
WATRDJ<= case when P05_TRDJ_TO is not null then V_TRDJ_TO else WATRDJ end
SQL联合查询两个表方法:
同一实例下的数据库表是可以直接引用的,只要加上数据库名就可以了
如
select a.* from A.dbo.AA as a,B.dbo.AA as b where a.col1 = b.col1 and a.col2 <> b.col2
SQL联合查询两个表的数据的更多相关文章
- SQL如何查询两个表的数据
在进行查询操作时,我们通常需要查询两个关联表的数据,我们可以使用where语句进行查询,如: select Emp.E_Id,Company.C_OraName from Emp,Company wh ...
- SQL联合查询:子表任一记录与主表联合查询
今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...
- php同时查询两个表的数据
业务环境,表一 会员等级表, 表二会员表, 有一个字段是相同的 会员等级ID level 在会员的显示页面要直接显示会员的会员等级名称,不是等级ID. 1.同时查询两个表 2.表设置别名, selec ...
- django同时查询两张表的数据,合并检索对象返回
原始需求: 1.一篇文章内容分N个版块,每篇文章的版块数量不同. 2.有个文章搜索功能,需要同时搜索标题和内容. 实现思路: 1.由于每篇文章的内容版块数量不同,因此将每个文章的标题和内容分开存入2张 ...
- SQL高效查询两个表不同的数据
逻辑相对复杂,但是速度最快: )
- MySQL关系表查询两个表的数据
如下,有四张表:游戏类型表,游戏表,点卡和游戏关系表,点卡表 CREATE TABLE `gamesType`( `tId` INT AUTO_INCREMENT NOT NULL PRIMARY K ...
- sql联合查询多个表
SELECT hp_patient.name, hp_ptorders.DrugName, hp_ptorders.Dosage,hp_ptorders.DosageUnit FROM hp_pati ...
- mysql左连接右连接(查询两张表不同的数据)
有两张表:一张A表he一张B表 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: ...
- SQL 统计两个表的数据,按同一日期分组
思路:把两个表的数据按日期整合到临时表在按日期分组,求和. 例子: SELECT t.dateTime AS '日期',SUM(t.money) AS '表1利息',SUM(t.interest) A ...
随机推荐
- 转《UNIX编程艺术》读书心得
花了一段时间看完了<UNIX编程艺术>,但不是看得特别仔细,尤其是后面作者通过对工具的讲解来阐述其设计思想,因为很多工具能未曾接触过,难免就会产生一些乏味的感觉.其实就像译者姜宏在译序里说 ...
- spark-shell和scala错误
运行spark-shell 或者scala命令,出现以下错误: Welcome to Scala version 2.10.6 (Java HotSpot(TM) 64-Bit Server VM, ...
- mave web常用配置文件参数
<build> <finalName>rte</finalName> <resources> <resource> <director ...
- 高性能网络编程(一)----accept建立连接
编写服务器时,许多程序员习惯于使用高层次的组件.中间件(例如OO(面向对象)层层封装过的开源组件),相比于服务器的运行效率而言,他们更关注程序开发的效率,追求更快的完成项目功能点.希望应用代码完全不关 ...
- CString转string
如题,找了半天... //CString转string USES_CONVERSION; CString temp; temp = _T("kjdsaflkjdlfkj"); ch ...
- nginx 配置全站404(百度闭站保护)
在百度站长里申请闭站保护时,需要全站404.可能过nginx配置实现 location / { #root html; #index index.html index.htm; retur ...
- tomcat虚拟目录映射网络共享目录
<Host name="localhost" debug="0" appBase="webapps" unpackWARs=" ...
- U盘FAT32文件系统转换成NTFS文件系统
首先 点击-开始--运行---输入CMD ----输入convert X:/FS:NTFS 其中 X是U盘所在的盘符
- jquery中的ajax参数
jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参 ...
- 金山云—ubuntu-web服务器完整部署笔记
金山云-ubuntu-web (jdk环境配置+tomcat配置+nginx反向代理)服务器完整部署文档第一步:挂载数据盘 参考金山云帮助文档 http://www.ksyun.com/doc/art ...