我想从一个值中减去另一个值。表的模式如下:
tag, datetime,value
------------
tag1, 2010-1-1 10:10:00, 123
tag2, 2010-2-2 10:12:00. 321
select * from
( (Select Max(Value) as [Value1] from History WHERE Datetime ='2010-1-1 10:10' and tagname ='tag1') as v1 -
( (Select Max(Value) as [Value2] from History WHERE Datetime ='2010-1-1 10:12' and Tagname ='tag2') as v2))显然I‘m lost...how do I do this。
谢谢
ms-sql
发布于 2010-04-10 05:53:47
总猜测:
select v1.Value1 - v2.Value2 from
(Select Max(Value) as [Value1] from History WHERE Datetime ='2010-1-1 10:10' and tagname ='tag1') as v1
CROSS JOIN
( (Select Max(Value) as [Value2] from History WHERE Datetime ='2010-1-1 10:12' and Tagname ='tag2') as v2)发布于 2010-04-10 05:56:05
你真的需要包装select语句吗?
您可以声明两个变量@value1和@value2并将其子结构。
declare @value1 int, @value2 int
select @value1 = Max(Value) as [Value1] from History WHERE Datetime ='2010-1-1 10:10' and tagname ='tag1'
select @value2 = Max(Value) as [Value2] from History WHERE Datetime ='2010-1-1 10:12' and Tagname ='tag2'
select @value1 - @value2发布于 2010-04-10 05:56:48
值列的类型是什么?如果它已经是一个整数,只需执行以下操作:
SELECT
(Select Max(Value) as [Value1] from History WHERE Datetime ='2010-1-1 10:10' and tagname ='tag1') as v1 -
(Select Max(Value) as [Value2] from History WHERE Datetime ='2010-1-1 10:12' and Tagname ='tag2') as v2否则,您将不得不将其转换为整数或任何您想要的数值类型
https://stackoverflow.com/questions/2611174
复制相似问题