Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 查询以查找连续两个月(列)为负数的行_Sql Server 2008 - Fatal编程技术网

Sql server 2008 查询以查找连续两个月(列)为负数的行

Sql server 2008 查询以查找连续两个月(列)为负数的行,sql-server-2008,Sql Server 2008,我有一个SQL Server 2008表,表中的列表示每12个月一次。我想找到连续两个月余额为负的行 编辑:我需要对所有的正数列求和,所以我使用了这个。如果有人知道更简单的方法,请告诉我 SELECT SUM(case when Oct > 0 then Oct else 0 end) + SUM(case when Nov > 0 then Nov else 0 end) + SUM(case when Dec > 0 then D

我有一个SQL Server 2008表,表中的列表示每12个月一次。我想找到连续两个月余额为负的行

编辑:我需要对所有的正数列求和,所以我使用了这个。如果有人知道更简单的方法,请告诉我

  SELECT SUM(case when Oct > 0 then Oct else 0 end) + 
         SUM(case when Nov > 0 then Nov else 0 end) +
         SUM(case when Dec > 0 then Dec else 0 end) +
         SUM(case when Jan > 0 then Jan else 0 end) +
         SUM(case when Feb > 0 then Feb else 0 end) +
         SUM(case when Mar > 0 then Mar else 0 end) +
         SUM(case when Apr > 0 then Apr else 0 end) +
         SUM(case when May > 0 then May else 0 end) +
         SUM(case when Jun > 0 then Jun else 0 end) +
         SUM(case when Jul > 0 then Jul else 0 end) +
         SUM(case when Aug > 0 then Aug else 0 end) +
         SUM(case when Sep > 0 then Sep else 0 end) as 'Sum of positive months'

你可以直接做到:

select * from tablename
where (Oct < 0 and Nov < 0) or
      (Nov < 0 and Dec < 0) or
      (Dec < 0 and Jan < 0) or
      (Jan < 0 and Feb < 0) or
      ...
从tablename中选择*
其中(十月<0,十一月<0)或
(11月<0日和12月<0日)或
(12月<0日和1月<0日)或
(一月<0,二月<0)或
...

我还需要另一个标准。如果上一年的9月与10月相等,也算是连续两个月。我省略了一个名为account的列,它与FiscalYear一起使行唯一。