当前位置:首页 » 编程语言 » sql两个查询取差
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql两个查询取差

发布时间: 2022-12-31 22:37:11

‘壹’ sql语句实现从根据任意两个日期查询,显示出两个记录差

select t1.日期,t1.用户,(t1.水量-t2.水量) 水量
from
(select * from table where 日期='4月2日') t1
inner join
(select * from table where 日期='3月1日') t2
on t1.用户=t2.用户

‘贰’ sql语句如何查询两个值之间的差

--> 测试数据:[tb]
if object_id('[tb]') is not null
drop table [tb]
go
create table [tb]([ID] int,[日期] datetime,[数量] int)
insert [tb]
select 1,'2009-1-1',10 union all
select 2,'2009-1-2',12 union all
select 3,'2009-1-3',13
go--1 测试
select a.[ID],a.[日期],a.[数量],增加额=isnull(a.[数量]-b.[数量],0) ------建议把null 替换为 0
from [tb] a
left join [tb] b
on a.id=b.id+1 /*
ID 日期 数量 增加额
----------- ----------------------- ----------- -----------
1 2009-01-01 00:00:00.000 10 0
2 2009-01-02 00:00:00.000 12 2
3 2009-01-03 00:00:00.000 13 1(3 行受影响)*/
--2 使用视图
create view v
as
select a.[ID],a.[日期],a.[数量],增加额=a.[数量]-b.[数量]
from [tb] a
left join [tb] b
on a.id=b.id+1 goselect * from v
/*
ID 日期 数量 增加额
----------- ----------------------- ----------- -----------
1 2009-01-01 00:00:00.000 10 NULL
2 2009-01-02 00:00:00.000 12 2
3 2009-01-03 00:00:00.000 13 1(3 行受影响)*/

‘叁’ sql语句查询差值

不能这样写,这样改

selecta.dd0-b.dd0from
(selectdd0from[2016001_dddata]wheretimelike'%2016-08-02%')a,
(selectdd0from[2016001_dddata]wheretimelike'%2016-08-01%')b;

‘肆’ 求高手给写一条SQL语句,返回两个表中的两条数据之差

不知道你什么数据库.
如果
Oracle
,
倒是很省事。
创建一个序列号,
2个表共用。
A表插入的时候,取
下一个序列号,
B表插入的时候,取当前序列号。
如果是
SQL
Server
或者
MySQL
这种,用数据库系统自增的。
就自己控制好,别插入一条A,再插入两条B这种情况发生。
不过如果发生异常,还是会导致不匹配的。
例如首先插入A,
某些
Check
没通过,数据没插入,但是那个自增的ID可能被递增了。
想返回表A中最大的id和表B中最大的id的差值
倒是很简单
SELECT
MAX(A.id)
-
MAX(B.id)
AS
差值
FROM
A
FULL
JOIN
B
ON
(A.id
=
B.id)

‘伍’ 如何用SQL语句从两个表中提取指定列的差值

首先你的语句没有语法错误,你的意思应该是计算出来的结果与实际不符吧?
因为:
你没有定义两表连接的条件,所以两表连接后的结果可能不是你期待的结果
例如两表都是以id作为连接条件:
select sum(inmoneys.money)- sum(outmoneys.money) as total
from outmoneys,inmoneys
where outmoneys.id = inmoneys.id
------
如果两表没有对应关系,换句话说是没有连接条件,那么只能写成:
select(select sum(money) from inmoneys)-(select sum(money) from outmoneys)as total

‘陆’ sql语句求两条数据之间的差

sql中查询两个值之间的差直接用“-”(即减号)即可。

工具:SqlServer 2008 R2

步骤:

1、分别计算10-1,20.5-10.3,1-3,9-9(即分别计算整数中大数减小数、小数之间的相减,整数中小数减大数、整数减自己本身)

2、语句分别如下:

10-1

1select10-1

‘柒’ 急救!!!用SQL语句怎么求两个数据之间的差

直接用<%=rs("summoney")-rsls("summoney")%>不就成了,不是非得用sql吧

‘捌’ sql 查询取差集,需要根据两个字段来确定行

你给的例子太特殊了,可以看成是不同的数字的差,也可以看成是求和后的差。
第一种,同意1楼,用EXCEPT最简洁了
SELECT a, b from a except select a, b from b

第二种按照和来算
SELECT t1.a, SUM(t1.b) - SUM(t2.b)
FROM a t1
LEFT JOIN b t2
ON t1.a = t2. a
GROUP BY t1.a

最好可以对sum(t2.b)做一个null判断,oracle里面就是
SELECT t1.a, NVL(SUM(t1.b), 0) - NVL(SUM(t2.b), 0)
FROM a t1
LEFT JOIN b t2
ON t1.a = t2. a
GROUP BY t1.a

其他sql方言要对null判断作适当转换,类似
SELECT t1.a,
CASE WHEN SUM(t1.b) IS NULL THEN 0 ELSE SUM(t1.b) END
- CASE WHEN SUM(t2.b) IS NULL THEN 0 ELSE SUM(t2.b) END -
FROM a t1
LEFT JOIN b t2
ON t1.a = t2. a
GROUP BY t1.a

‘玖’ 两个SQL语句的差值

selectvalue,max(time)-min(time)fromD_live_datawherefield_id=156groupbyvalue

这样吗,你之前那个不group by能运行成功吗?

‘拾’ 在Sql语句中怎样计算出两个日期的差值

sql语句中计算两个日期的差值用datediff函数。

工具:sqlserver 2008 R2

步骤:

1、计算2009-06-23与2009-06-17之间的天数。语句如下:

selectdatediff(d,'2009-06-17','2009-06-23')

2、查询结果: