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 列指定列名。
如何修改上述查询?
将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)