how do I subtract values from two select statements

后端 未结 4 970
没有蜡笔的小新
没有蜡笔的小新 2021-01-19 19:11

I would like to subtract one value from another value. The schema of the table is as follows:

   tag, datetime,value
   ------------
   tag1, 2010-1-1 10:10         


        
相关标签:
4条回答
  • 2021-01-19 19:53
    select h1.value - h2.value
    from History h1
    inner join History h2 on h1.Datetime = '2010-1-1 10:10' and Datetime ='2010-1-1 10:12'
    
    0 讨论(0)
  • 2021-01-19 20:04

    What is the type of the value column? If it is already an integer just do:

    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
    

    else you will have to cast it as an integer or whatever numeric type you want

    0 讨论(0)
  • 2021-01-19 20:07

    Total guess:

    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)
    
    0 讨论(0)
  • 2021-01-19 20:09

    Do you really need wrapping select statement?

    You can declare two variables @value1 and @value2 and substruct them.

    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
    
    0 讨论(0)
提交回复
热议问题