sql数据库查询表
可以有两种处理方法,1、两表先合并,后求和
select日期,sum(数值)as数值from
(select日期,金额薯局祥as数值fromA表
unionall
select日期,数量as数值fromB表)
groupby日期
2、先求和后合并,再求和
select日期,sum(数值)as数值from
(select日期,sum(金额)as数值fromA表groupby日期
unionall
select日期,sum(数量)as数值fromB表groupby日期)
groupby日期
对于“如果要实现总和的相乘、相除,或者相减得话,应该怎么写呢?”,你得提出明确需求,那后才能设计。
如果数搏是相乘、相除,或者相减,得有条件,还像上面,用日期关联,A表-B表,A表求和:select日期,sum(金额)as数值fromA表groupby日期
B表求和:select日期,sum(数量)as数值fromB表groupby日期
在执行A表-B表时,由于用日期关联,则某一日期对应的记录可能会产生三种情况:A表B表都有;A表有B表无;A表无B表有。
1、需要先找出所有日期,select日期fromA表
union
select日期fromB表
2、对于A表中所有数据以上表中日期为依据构造所有相关日期数据,如果有日期数据,则为原数腊桥据,否则为0。
selecta.日期as日期,casewhenb.数值isNULLthenb.数值else0endas数值
from
(select日期fromA表
union
select日期fromB表)a
leftjoin
(select日期,sum(金额)as数值fromA表groupby日期)b
ona.日期=b.日期
3、同样对于B表也如此。
4、2表相减即得。
selecta3.日期as日期,a3.数值-b3.数值as数值
from
(
selecta1.日期as日期,casewhenb1.数值isNULLthenb1.数值else0endas数值
from
(select日期fromA表
union
select日期fromB表)a1
leftjoin
(select日期,sum(金额)as数值fromA表groupby日期)b1
ona1.日期=b1.日期
)a3,(
selecta2.日期as日期,casewhenb2.数值isNULLthenb2.数值else0endas数值
from
(select日期fromA表
union
select日期fromB表)a2
leftjoin
(select日期,sum(金额)as数值fromB表groupby日期)b2
ona2.日期=b2.日期
)b3
wherea3.日期=b3.日期
当然,以上只是一种方法,还有其他方法也可以实现,尽供参考。
㈡ SQL怎么连接查询2个表
如果是外连接:select 列名1,列名2
from 表1 left outer join 表2
on 表1.id = 表2.id
如果散简是等值连接:select 列名1,列名2
from 表1,表2
where 表1.id = 表2.id
结构化查询语言简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语冲亩裤言,用耐纤于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
㈢ sql2008怎么查看表的内容
1、首先登录sql server服务器,输入正确的用户名和密码。
(3)sql数据库查询表扩展阅读:
一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。
下面的例子是一个名为 "Persons" 的表:
Id
LastName
FirstName
Address
City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
上面的表包含三条记录(每一条对应一个人)和五个列(Id、姓、名、地址和城市)。
SQL 语句
您需要在数据库上执行的大部分工作都由 SQL 语句完成。
下面的语句从表中选取 LastName 列的数据:
SELECT LastName FROM Persons
结果集类似这样:
LastName
Adams
Bush
Carter
㈣ 如何查看数据库中的表
怎样用SQL语句查询一个数据库中的所有表?
--读取库中的所有表名select name from sysobjects where xtype='u'--读取指定锋前液表的所有列名select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')获取数据库表名和字段sqlserver中各个系统表的作用sysaltfiles 主数据库 保存数据库的文件syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程sysremotelogins主数据库 远程登录帐号syscolumns 每个数据银物库 列sysconstrains 每个数据库 限制sysfilegroups 每个数据库 文件组sysfiles 每个数据库 文件sysforeignkeys 每个数据库 外部关键字sysindexs 每个数据库 索引sy *** enbers 每个数据库 角色成员sysobjects 每个数据库 所有数据库对象syspermissions 每个数据库 权限systypes 每个数据库 用户定义数据类型select 列名=name from syscolumns where id=object_id(N'要查的表名')
如何查看oracle数据库中的所有表
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。
以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:
SQL>select table_name from user_tables;
类似的,你可以进行替换。:)
如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
要想导入外部sql语句可以用命令
sql >@e:\文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:\test.sql 这是保存文件的位置
select * from tablename;
SPOOL OFF
mysql如何进入数据库查看所悔灶有表
mysql> use my_db;
mysql> select * from rmation_schema.tables t where t.table_schema='my_db';
--大概
Mysql> create table lala (la_id int ,la_name varchar(55) primary(id)) enginee=innodb
怎样看SQL数据库中哪些表有数据
什么数据库
1.
select * from rmation_schema.tables
2.
select table_name from user_all_tables
-------------------------
CREATE PROCEDURE get_table AS
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespace]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table tablespace --创建结果存储表
(name varchar(50) ,
rows int , reserved varchar(20) ,
data varchar(20) ,
index_size varchar(20) ,
unused varchar(20) )
truncate table tablespace --清空数据表
--这里.....关键部分.把存储过程的结果放到一个表里.
insert into tablespace exec sp_MSforeachtable "exec sp_spaceused '?'"
go
查询运行该存储过程后得到的结果
select * from tablespace order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc
㈤ SQL server数据库里查询时新建查询怎么进行多表查询
查询结果直接创建一个新表存放
select * into [新表名] FROM [原表名]WHERE 车辆='小汽车'
若新建表要放在另一个数据库B中
USE B
GO
SELECT * INTO [新御拆表名] FROM [数据库名]..[表名]
WHERE 车辆='小汽车'
GO