sql-把三张表A,B,C对应列的值同时显示出来

问题描述

把三张表A,B,C对应列的值同时显示出来

select *
from (select sum(OUTGARBAGE) as OUTGARBAGE from sw_classroom_health a where to_char(eventdate, 'yyyy-mm-dd') between '2015-11-01' and
'2015-11-31' and classid='0021') ,
(select sum(EXERCISE) as EXERCISE from sw_class_discipline b where to_char(eventdate, 'yyyy-mm-dd') between '2015-11-01' and
'2015-11-31' and classid='0021' ),
(select sum(EQUIPMENTSOURCE) as EQUIPMENTSOURCE from sw_class_tourhall c where to_char(eventdate, 'yyyy-mm-dd') between '2015-11-01' and
'2015-11-31' and classid='0021' )

                        A,B,C表有两列列名相同,该怎么简写?

解决方案

不知道你要干什么,
SELECT * FROM
(SELECT SUM(OUTGARBAGE) AS OUTGARBAGE FROM sw_classroom_health a WHERE to_char (eventdate, 'yyyy-mm-dd') BETWEEN '2015-11-01' AND '2015-11-31' AND classid = '0021') a,
(SELECT SUM(EXERCISE) AS EXERCISE FROM sw_class_discipline b WHERE to_char (eventdate, 'yyyy-mm-dd') BETWEEN '2015-11-01' AND '2015-11-31' AND classid = '0021') b,
(SELECT SUM(EQUIPMENTSOURCE) AS EQUIPMENTSOURCE FROM sw_class_tourhall c WHERE to_char (eventdate, 'yyyy-mm-dd') BETWEEN '2015-11-01' AND '2015-11-31' AND classid = '0021') c
这样写可以查出来

解决方案二:

不知道你要干什么,
SELECT * FROM
(SELECT SUM(OUTGARBAGE) AS OUTGARBAGE FROM sw_classroom_health a WHERE to_char (eventdate, 'yyyy-mm-dd') BETWEEN '2015-11-01' AND '2015-11-31' AND classid = '0021') a,
(SELECT SUM(EXERCISE) AS EXERCISE FROM sw_class_discipline b WHERE to_char (eventdate, 'yyyy-mm-dd') BETWEEN '2015-11-01' AND '2015-11-31' AND classid = '0021') b,
(SELECT SUM(EQUIPMENTSOURCE) AS EQUIPMENTSOURCE FROM sw_class_tourhall c WHERE to_char (eventdate, 'yyyy-mm-dd') BETWEEN '2015-11-01' AND '2015-11-31' AND classid = '0021') c
这样写可以查出来

解决方案三:

没必要简写了吧。3张表又不一定能用Join方式,而且不一定比现在这样写的效果好。
真要优化的话,to_char 再进行字符串类型比较的这种改成用date来比较,将日期字符串用to_data或to_timestamp的方式转成日期来比较。
理论上日期的比较比字符串比较要快,而且不用每行数据都转换后再比较。

时间: 2025-01-02 02:40:09

sql-把三张表A,B,C对应列的值同时显示出来的相关文章

sql 查询同一张表,将一个字段下数值前三位相同的数据统计归为一类?

问题描述 sql 查询同一张表,将一个字段下数值前三位相同的数据统计归为一类? 比如table表中字段code ,name times44.10 dd 544.11 da 644.21 dc 144.22 db 7 根据code字段下是数值前三位相同的,归为一类.44.10和44.11归为44.1,并把times相加,即44.1 11 解决方案 select substr(t.code13)sum(times) from table group by substr(t.code13) 你的加个点

sql语句如何将三张表所有要的属性显示

问题描述 sql语句如何将三张表所有要的属性显示 SQL大神指教指教,谢谢! 表一:XS Sno Sname Sex birthday Pid class department (表一属性) 表二:CJ Sno Courseno Score (表二属性) 表三:KC Courseno Coursename credit (表三属性) 要求:"用相关查询语句"查询选修课程号为"xx" 的学生的相关信息 解决方案 select XS.Sno, Sname,Sex, bi

sql-SQL 三张表联合查询中间表有空字段的问题

问题描述 SQL 三张表联合查询中间表有空字段的问题 table1(id1).table2(id2id1no).table3(noname)select t3.name from table1 t1(nolock) inner join table2 t2(nolock)on t1.id1 = t2.id1inner join table3 t3(nolock)on t2.no = t3.no第2张表里面对应的no字段有可能为空,为空的时候就取不到name而不是取no为空的name字段 解决方案

sql-SQL 三张表联合查询其中表有空字段的问题

问题描述 SQL 三张表联合查询其中表有空字段的问题 table1(id1).table2(id2id1no).table3(noname) select t3.name from table1 t1(nolock) inner join table2 t2(nolock)on t1.id1 = t2.id1inner join table3 t3(nolock)on t2.no = t3.no 第2张表里面对应的no字段有可能为空,为空的时候name就为空,这个要怎么查询才不会有冗余,请指教

iOS 数据库第二。三张表不能插入数据,第一张可以,为什么

问题描述 iOS 数据库第二.三张表不能插入数据,第一张可以,为什么 (id)init { self = [super init]; if (self) { NSArray * arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); _filePath = [arr objectAtIndex:0]; _filePath = [_filePath stringByAppendin

java-今天面试的时候遇到一个问题,查三张表,有一百万条纪录,怎么查?他是想问什么,数据库优化吗

问题描述 今天面试的时候遇到一个问题,查三张表,有一百万条纪录,怎么查?他是想问什么,数据库优化吗 今天面试的时候遇到一个问题,查三张表,有一百万条纪录,怎么查?他是想问什么,数据库优化吗 解决方案 我不认为索引或分页是重点. 那不是怎么查的问题,而是怎么优化数据库的问题. 我觉得应该是查的方式或访问数据的方式,防止内存溢出,两种方法. 1.用游标查,而不是一下子取到内存中. 2.一回查询一定量数据,取多回. ps: 查的时候,在有必要的时候加上HINT句,可以优化效率. 这个你也说了的话,我觉

求助mysql查询语句,实现三张表数据统计

问题描述 求助mysql查询语句,实现三张表数据统计 temp_instore . temp_outstore . temp_stock三张表,以temp_stock表数据为主,统计与mate_id.sd_price两个字段值在另外两张表中相等的记录,主要查询出mate_id.sd_price.(sd_quantity + os_quantity - is_quantity) as quantity 就是sd_price与os_price.is_price比较,三者相等按上述进行加减运算,若os

字段-【MSSQL】三张表,如何进行关联替换

问题描述 [MSSQL]三张表,如何进行关联替换 [表1]字段1:uuu 字段2:bbb [表2]字段1:uuu 字段2:ddd [表3]字段1:aaa 字段2:ddd 其中: [表1]的字段1=[表2]的字段1 [表2]的字段2=[表3]的字段2 达到目的:用Mssql语句写出.[表1]的字段2 替换成 [表3]的字段1. 各位大大,该如何写啊. 解决方案 update 表1 set 字段2=(select 表3.字段2 from 表2,表3 where 表2.字段2=表3.字段2 and 表

hibernate-Hibernate 三张表关联 一对多对多 配置

问题描述 Hibernate 三张表关联 一对多对多 配置 当更新classA时,关联多方(classB)能自动更新,单与classB 关联的多方(Class C)却不能自动更新 classC: classB: classA: classA对应的A表主键是B表的外键,ClassB对应的B表主键是C标的外键.现在情况是saveorupdate()A表的时候,B表能自动更新. classA 对应A表 classB :b表 classC: c表 A表的主键Aid 是b表的外键, b表的bid是c表的外