命名 select/ 时如何解决 Invalid object name

How to solve Invalid object name when naming a select/

我命名了我的查询,当我尝试使用它时我得到:无效的对象名称 'AssetsTenDays'。我该如何解决这个问题?

WITH AssetsTenDays AS(
SELECT DISTINCT top 2 
   a.name,
   ir.number
   FROM install i
   INNER JOIN asset a ON a.pws_assetId = i.pws_AssetId   
   WHERE a.days = 10        
)

当我尝试使用它时,我得到了无效的对象名称 -

SELECT distinct  *
from AssetsTenDays  

尝试在单个 SQL 语句中同时使用它们,例如:

WITH AssetsTenDays AS(
SELECT DISTINCT top 2 
   a.name,
   ir.number
   FROM install i
   INNER JOIN asset a ON a.pws_assetId = i.pws_AssetId   
   WHERE a.days = 10        
)
SELECT distinct  *
from AssetsTenDays  

公共 Table 表达式应在声明后立即使用:

WITH AssetsTenDays AS(
    SELECT DISTINCT top 2 a.name, ir.number
    FROM install i INNER JOIN 
         asset a 
         ON a.pws_assetId = i.pws_AssetId   
    WHERE a.days = 10        
)
SELECT ad.*
FROM AssetsTenDays ad;

您不能在声明和调用公共 table 表达式之间使用其他 SELECT 语句。它应该在声明后立即调用。