这是一个两部分问题。
首先,我是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
答案 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`