Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 我在select中创建了一列;我在何处使用它?_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql 我在select中创建了一列;我在何处使用它?

Sql 我在select中创建了一列;我在何处使用它?,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我在select语句DaysSinceCheck中创建了一列 在WHERE子句中如何使用它 接收错误: 聚合不能出现在WHERE子句中,除非它位于HAVING子句或select列表中包含的子查询中,并且被聚合的列是外部引用 使用HAVING子句测试聚合函数的值 ... WHERE cust = 'usa' GROUP BY Name HAVING ((DATEDIFF(D, max(lastDaTe), GETDATE()))) <= 2 使用HAVING子句测试聚合函数的值 ... W

我在select语句DaysSinceCheck中创建了一列

在WHERE子句中如何使用它

接收错误:

聚合不能出现在WHERE子句中,除非它位于HAVING子句或select列表中包含的子查询中,并且被聚合的列是外部引用


使用HAVING子句测试聚合函数的值

...
WHERE cust = 'usa'
GROUP BY Name
HAVING ((DATEDIFF(D, max(lastDaTe), GETDATE()))) <= 2

使用HAVING子句测试聚合函数的值

...
WHERE cust = 'usa'
GROUP BY Name
HAVING ((DATEDIFF(D, max(lastDaTe), GETDATE()))) <= 2

使用HAVING子句测试聚合函数的值

...
WHERE cust = 'usa'
GROUP BY Name
HAVING ((DATEDIFF(D, max(lastDaTe), GETDATE()))) <= 2

使用HAVING子句测试聚合函数的值

...
WHERE cust = 'usa'
GROUP BY Name
HAVING ((DATEDIFF(D, max(lastDaTe), GETDATE()))) <= 2

这个解决方案很好用。。。另一种方法是使用CTE将事物分为以下两部分:

WITH NameAndDays AS (
    SELECT DISTINCT Name,
           (DATEDIFF(D, max(lastDaTe), GETDATE())) AS DaysSinceCHECK
      FROM event_table
     WHERE cust = 'usa'
     GROUP BY Name
) SELECT * 
    FROM NameAndDays
   WHERE DaysSinceCHECK <= 2

这个解决方案很好用。。。另一种方法是使用CTE将事物分为以下两部分:

WITH NameAndDays AS (
    SELECT DISTINCT Name,
           (DATEDIFF(D, max(lastDaTe), GETDATE())) AS DaysSinceCHECK
      FROM event_table
     WHERE cust = 'usa'
     GROUP BY Name
) SELECT * 
    FROM NameAndDays
   WHERE DaysSinceCHECK <= 2

这个解决方案很好用。。。另一种方法是使用CTE将事物分为以下两部分:

WITH NameAndDays AS (
    SELECT DISTINCT Name,
           (DATEDIFF(D, max(lastDaTe), GETDATE())) AS DaysSinceCHECK
      FROM event_table
     WHERE cust = 'usa'
     GROUP BY Name
) SELECT * 
    FROM NameAndDays
   WHERE DaysSinceCHECK <= 2

这个解决方案很好用。。。另一种方法是使用CTE将事物分为以下两部分:

WITH NameAndDays AS (
    SELECT DISTINCT Name,
           (DATEDIFF(D, max(lastDaTe), GETDATE())) AS DaysSinceCHECK
      FROM event_table
     WHERE cust = 'usa'
     GROUP BY Name
) SELECT * 
    FROM NameAndDays
   WHERE DaysSinceCHECK <= 2

把你最大的一部分移动到哪里去。看在上帝的份上,为什么你要用不同的名字和名字分组?你已经按名称进行聚合了,你不需要那个区别。顺便说一句,你真的不需要那些额外的参数。把你的最大部分移到哪里去。看在上帝的份上,你为什么要使用不同的名称和按名称分组?你已经按名称进行聚合了,你不需要那个区别。顺便说一句,你真的不需要那些额外的参数。把你的最大部分移到哪里去。看在上帝的份上,你为什么要使用不同的名称和按名称分组?你已经按名称进行聚合了,你不需要那个区别。顺便说一句,你真的不需要那些额外的参数。把你的最大部分移到哪里去。看在上帝的份上,你为什么要使用不同的名称和按名称分组?你已经按名字聚合了,你不需要那个区别,你真的不需要那些额外的参数。