SELECT AS问题

Nik*_*lin 4 sql

我试图执行以下查询:

SELECT t1.[user1], t1.[user2],
    (CAST(t1.[total_event_duration] AS DECIMAL)) / (CAST (t2.[total_events_duration] AS DECIMAL)) AS buddy_strength 
FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1 
INNER JOIN [CDRs].[dbo].[user_monthly_stats] AS t2 
    ON t1.[user1] = t2.[user1]  
WHERE buddy_strength > 0.02
Run Code Online (Sandbox Code Playgroud)

但它返回错误"无效的列名'buddy_strength'"

有谁知道如何修复上面的查询?

gbn*_*gbn 7

SELECT * 
FROM
    (
    SELECT
        t1.[user1], t1.[user2],(CAST(t1.[total_event_duration] AS DECIMAL))/(CAST (t2.[total_events_duration] AS DECIMAL)) AS buddy_strength 
        FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1 
            INNER JOIN [CDRs].[dbo].[user_monthly_stats] AS t2 
                ON t1.[user1] = t2.[user1]  


   ) foo
        WHERE foo.buddy_strength > 0.02
Run Code Online (Sandbox Code Playgroud)


a1e*_*x07 5

您不能在WHERE子句中使用别名.你需要重复整个表达式(CAST(t1.[total_event_duration] AS DECIMAL))/(CAST (t2.[total_events_duration] AS DECIMAL)>0.02).