在SQL Server 2014中,Bucketing导致老化存储桶

时间:2016-01-30 02:30:39

标签: sql sql-server excel sql-server-2014

这是一个两部分问题。

首先,我是Excel用户,只是获得了SQL Server访问权限,希望自动化我的一些报告。我理解如何选择我需要的列,但是我需要使用其中一些列来根据我的规范创建新列。我将提供我目前在Excel版本中使用的if语句。

1 - 我需要一个专栏......

=IF(O4="Opened",NETWORKDAYS(L4,$AM$4,Holidays!$A:$A),"")

因此,如果O4 = "opened"我使用networkdays公式来确定它已打开的天数。苦苦思索如何在SQL Server中执行此操作

第二 - 在另一栏中,我需要根据以下标准推出上述结果。这是我的Excel公式:

=IF(AF4<=6,"0-5 Days",IF(AF4<=11,"6-10 Days",
IF(AF4<=16,"11-15 Days",
IF(AF4<=21,"16-20 Days",
IF(AF4<=26,"21-25 Days",
IF(AF4<=31,"26-30 Days",
IF(AF4<=36,"31-35 Days",
IF(AF4<=41,"36-40 Days",
IF(AF4<=46,"41-45 Days",
IF(AF4<=51,"46-50 Days",
IF(AF4<=56,"51-55 Days",
IF(AF4<=61,"56-60 Days",
IF(AF4<=66,"61-65 Days",IF(AF4<=71,"66-70 Days","71+ Days"))))))))))))))

努力弄清楚如何在SQL Server中执行此操作。

我非常感谢您提供的任何帮助。有人给我发了一个他们使用“案例”函数的查询示例,但它要么在我的情况下不起作用,要么我只是解决了这个函数的问题。

我使用SQL Server 2014

1 个答案:

答案 0 :(得分:0)

我不确定第一个是什么。不知道什么是NETWORKDAYS

第二个使用CASE expresion

SELECT CASE 
          WHEN `AF4` <= 6  THEN "0-5 Days"
          WHEN `AF4` <= 11 THEN "6-10 Days"
          WHEN `AF4` <= 16 THEN "11-15 Days"
          WHEN `AF4` <= 21 THEN "16-20 Days"
          WHEN `AF4` <= 26 THEN "21-25 Days"
          WHEN `AF4` <= 31 THEN "26-30 Days"
          WHEN `AF4` <= 36 THEN "31-35 Days"
          WHEN `AF4` <= 41 THEN "36-40 Days"
          WHEN `AF4` <= 46 THEN "41-45 Days"
          WHEN `AF4` <= 51 THEN "46-50 Days"
          WHEN `AF4` <= 56 THEN "51-55 Days"
          WHEN `AF4` <= 61 THEN "56-60 Days"
          WHEN `AF4` <= 66 THEN "61-65 Days"
          WHEN `AF4` <= 71 THEN "66-70 Days"
          ELSE "71+ Days"
      END as `AF4`