declare @i int,@j int
set @i=select TEST.dbo.dategap1."33558545" from TEST.dbo.dategap1 where TEST.dbo.dategap1.DeviceSN='3700012'
set @j= select TEST.dbo.numgap1."33558545" from TEST.dbo.numgap1 where TEST.dbo.dategap1.DeviceSN='3700012'
INNER JOIN TEST.dbo.dategap1 
on TEST.dbo.numgap1.DeviceSN=TEST.dbo.dategap1.DeviceSN
select result=case when @j=0 then null else @i/@j end 
from TEST.dbo.numgap1 
INNER JOIN TEST.dbo.dategap1 
on TEST.dbo.numgap1.DeviceSN=TEST.dbo.dategap1.DeviceSN

解决方案 »

  1.   

    select TEST.dbo.dategap1."33558545" /(case when TEST.dbo.numgap1."33558545" is null then 1 when TEST.dbo.numgap1."33558545" = 0 then 1 else when TEST.dbo.numgap1."33558545" end)
    from TEST.dbo.dategap1 
    INNER JOIN TEST.dbo.dategap1  
    on TEST.dbo.numgap1.DeviceSN=TEST.dbo.dategap1.DeviceSN
    where TEST.dbo.dategap1.DeviceSN='3700012'

    直接相除不行?
      

  2.   

    dategap 这张表的第一列DeviceSN,其余列是以3333333为列名的,第一列的数据类型是varchar,其余列为int。numgap 表同上。这两张表都是上前行上前列的数据量。
    现在要做的是numgap表的数据除以dategap表的对应数据。但是dategap有一部分数据为零。 其中这两张表的列名称都相同,对应位置也一样。 谢谢啦。 应该怎么写sql语句呢?
      

  3.   

    DeviceSN 这一列的数据也是类似为323233的。
      

  4.   

    dategap 这张表的第一列DeviceSN,其余列是以3333333,693274为例的列名,第一列的数据类型是varchar,其余列为int。numgap 表同上。这两张表都是上前行上前列的数据量。
    现在要做的是numgap表的数据除以dategap表的对应数据。但是dategap有一部分数据为零。 其中这两张表的列名称都相同,对应位置也一样。DeviceSN 这一列的数据也是类似为323233的形式,类型为varchar。  谢谢啦。 应该怎么写sql语句呢?