我需要在WHERE子句中使用别名,但它一直告诉我它是一个未知的列.有什么方法可以解决这个问题吗?我需要选择评级高于x的记录.评级计算如下:
sum(reviews.rev_rating)/count(reviews.rev_id) as avg_rating
我有一个简单的查询:
SELECT u_name AS user_name FROM users WHERE user_name = "john";
我得到Unknown Column 'user_name' in where clause.'user_name'即使之后,我还不能在声明的其他部分提及select 'u_name as user_name'吗?
我正在尝试通过链接的SSAS服务器执行SQL查询.初始查询工作正常:
SELECT "Ugly OLAP name" as "Value" 
FROM OpenQuery( OLAP, 'OLAP Query')
但是,如果我尝试添加:
WHERE "Value" > 0
我收到一个错误
列名称'Value'无效
我有什么想法可能做错了吗?
所以问题在于处理查询元素的顺序与它们的编写顺序不同.根据这个消息来源:
http://blogs.x2line.com/al/archive/2007/06/30/3187.aspx
MSSQL中的评估顺序是:
因此,在WHERE和HAVING子句之后才会处理别名.
所以我有一个表中有一堆不同的地址.我需要一个proc,它将选择该表中与传入的lat/long值相距指定距离的地址.
我的表的例子如下:
- messageId
- lat (float)
- long (float)
Proc正在传入另一个纬度/长度对(同时float也是一对)以及一个int(英里)
我发现这个http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=81360来计算实际公式,但我无法弄清楚在proc表单中修改它以便能够通过整个列表地址,只给我一个Id<=里程(我传入的)的地址,来自我传入的纬度/经度.
我可以在这里得到任何帮助吗?
谢谢!
我收到错误;列名称"阶段"无效.我已经尝试过我能想到的每一种排列.
<cfargument name="locationFilter" default="" />
    <cfargument name="educationFilter" default="" />
    <cfargument name="workFilter" default="" />
    <cfargument name="diversityFilter" default="" />
    <cfargument name="phaseFilter" default="" />
    <cfquery name="QMentors" datasource="#request.dsn_live#">
        SELECT  
        (case 
        when datepart(year,getdate())-cast(yearstarted as integer) > 29 then '5'
        when datepart(year,getdate())-cast(yearstarted as integer) > 13 then '4'
        when datepart(year,getdate())-cast(yearstarted as integer) > 5 then '3'
        when datepart(year,getdate())-cast(yearstarted as integer) > 1 then '2'
        else '1'
        end) as phase, *
    FROM mentors 
    WHERE 0=0
    AND mentortype='mentor' 
    AND approved='true' 
    AND active='true' 
    AND mentorcat LIKE '%general%' 
        <cfif arguments.locationFilter …sql ×4
mysql ×2
case ×1
cfquery ×1
coldfusion ×1
great-circle ×1
having ×1
sql-server ×1
t-sql ×1