sql语句如何查询两个值之间的差?

如已有一个数量表ID  日期   数量1  2009-1-1  102  2009-1-2 123 2009-1-3 13如何生成一个视图能实现以下查询?ID  日期   数量  增加额1  2009-1-1  10  null2  2009-1-2 12 23 2009-1-3 13 1即查询每天的增加额

--> 测试数据:[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语句如何查询两个值之间的差?
1、创建表,create table test_date(id number, v_date date, cnt number);2、插入测试数据,insert into test_date values(3, to_date(20190103,'yyyymmdd'), 13);insert into test_date values(2, to_date(20190102,'yyyymmdd'), 12);insert into test_date values(1, to_date(20190101,'...

sql语句如何查询两个值之间的差?
1、首先在桌面上,点击“Management Studio”图标。2、然后在该界面中,点击左上角“新建查询”选项。3、之后在该界面中,输入SQL语句“select MoneyA - MoneyB from test;”。4、最后在该界面中,显示两个值之间的差。

急救!!!用SQL语句怎么求两个数据之间的差?
直接用<%=rs("summoney")-rsls("summoney")%>不就成了,不是非得用sql吧

sql语句如何查询两个值之间的差?
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.[数量...

SQL语句,同一个表中,两个字段相减,应该怎么写?
如果你想计算每个字段A值对应的字段B的最大值和最小值之差,可以使用聚合函数MAX和MIN,如下:sql SELECT 字段A, MAX(字段B) - MIN(字段B)FROM 表名 WHERE 字段A = 1 GROUP BY 字段A;请注意,进行上述操作时,字段B必须是数值型的,或者其数据能够转换为数值类型。同时,WHERE子句可以根据具体...

利用SQL语句如何获得两个日期之间相差的天数
to_char(sysdate,'YYYY') 判断年相同 and to_char("end_date",'MM') = to_char(sysdate,'MM') 判断月相同 and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判断日相同 或者:where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15 ...

SQL语句中求两个月份值之间的差,比如201001到201101的差是12个月
datediff(M, cast(acct_month * 100 + 1 as nchar(8), cast(sysdate * 100 + 1 as nchar(8)))如果sysdate指的是当前系统日期,可用getdate()函数代替 datediff(M, cast(acct_month * 100 + 1 as nchar(8), getdate())可以写在where子句中 确定最小时间同差值有关系吗,不是用min()...

sql怎么查询2个相差在10%以内的值
--判断两个正数(按大小称这两个数分别为大数和小数)相差是否在10%以内,有两种理解方式:--1. 大数小于小数的110%。按这种理解,(90,100)和(100,110)相差都不在10%以内--2. 小数大于大数的90%。按这种理解,(90,100)相差不在10%以内,但(100,110)相差在10%以内。--如果按第一种理解,...

如何用SQL实现两列值的差
用 DATEDIFF 函数就可以,不过类型必须是datetime类型的,如果不是,你就转换一下。DATEDIFF ( datepart , startdate , enddate )

在Sql语句中怎样计算出两个日期的差值?
sql语句中计算两个日期的差值用datediff函数。工具:sqlserver 2008 R2 步骤:1、计算2009-06-23与2009-06-17之间的天数。语句如下:select datediff(d,'2009-06-17','2009-06-23')2、查询结果:datediff函数:语法:DATEDIFF(datepart,startdate,enddate)startdate 和 enddate 参数是合法的日期表达式...

相似回答