没有为“a”错误的第 2 列指定列名

use*_*967 3 sql-server mssql-jdbc

我有一个 MySQL 查询,我运行它工作正常,但相同的查询在 SQL Server 中显示错误。

SQL Server 查询:

SELECT 
    COUNT(*) cnt 
FROM 
    (SELECT DISTINCT 
         tc_id, MAX(exn_time), STATUS 
     FROM 
         release_details a, tc_details b  
     WHERE 
         a.project = b.project 
         AND a.tc_id = b.tc_name 
         AND logicaldel = 0 
         AND a.project = 'test' 
     GROUP BY 
         tc_id, STATUS) a 
WHERE 
    a.status = 'PASS';
Run Code Online (Sandbox Code Playgroud)

错误:

没有为“a”的第 2 列指定列名。

如何修改上述查询?

Mah*_*esh 5

Alias name用于您的内部查询。您正在获取MAX(exn_time)但未指定该列的名称,这就是抛出错误的原因。并且您可以使用Joins表来使其更具可读性。

SELECT COUNT(*) cnt 
FROM (
     SELECT DISTINCT 
         tc_id,
         MAX(exn_time) AS Maxtime ,
         STATUS 
      FROM 
         release_details a JOIN tc_details b  
           ON a.project= b.project 
             AND a.tc_id = b.tc_name 
      WHERE 
           logicaldel = 0  
           AND a.project ='test' 
      GROUP BY 
         tc_id,
         STATUS 
      ) a 
 WHERE a.status='PASS';
Run Code Online (Sandbox Code Playgroud)