Thread: Need help with attributes...

Need help with attributes...

From
Scott Holmes
Date:
I created a latitude/longitude function (it's Richard Lynch's, actually) that returns the distance between to points.  What I don't know how to do is use this value as a filter in the select statement:

PostgreSQL Error: 1 (ERROR: Attribute 'distance' not found )
select distinct zip_code, gpsdistance(34.2865, 118.435, latitude, longitude) as distance from zipcodes where distance
<= 10.0

The value for distance is actually available, however:
 

select distinct zip_code, gpsdistance(34.2865, 118.435, latitude, longitude) as distance from zipcodes where zip_code
like '913%'

91301 16.3049416821461,
91302 12.858968990111,
91303 8.71667347958831,
91304 8.67013652211651,
91305 8.45399567001425,
91306 .....

Any assistance on this question of syntax would be gratefully accepted

-- 
---------------------------------------------------------------------
Scott Holmes                       http://www.pacificnet.net/~sholmes
                                   sholmes@pacificnet.net

  Independent Programmer/Analyst                  Passport 4GL        
  HTML Composer                                   Informix 4GL, SQL
---------------------------------------------------------------------
      There are more things in heaven and earth, Horatio,
             than are dreamt of in your philosophy 
---------------------------------------------------------------------
 

Re: Need help with attributes...

From
Ed Loehr
Date:
Scott Holmes wrote:
>
> I created a latitude/longitude function (it's Richard Lynch's, actually)
> that returns the distance between to points.  What I don't know how to do
> is use this value as a filter in the select statement:
>
> PostgreSQL Error: 1 (ERROR: Attribute 'distance' not found )
> select distinct zip_code, gpsdistance(34.2865, 118.435, latitude,
> longitude) as distance from zipcodes where distance
> <= 10.0
>
> The value for distance is actually available, however:
>
>
> select distinct zip_code, gpsdistance(34.2865, 118.435, latitude,
> longitude) as distance from zipcodes where zip_code
> like '913%'
>
> 91301 16.3049416821461,
> 91302 12.858968990111,
> 91303 8.71667347958831,
> 91304 8.67013652211651,
> 91305 8.45399567001425,
> 91306 .....
>
> Any assistance on this question of syntax would be gratefully accepted

Double-quote distance to make it an alias rather than a column name.  Then,
I'm not sure you can use the double-quoted version in the where clause or
not...

Regards,
Ed Loehr

RE: Need help with attributes...

From
"Culberson, Philip"
Date:
You cannot use a "name" in a WHERE clause and aliases are specifically for
aliasing table names only.  (An alias reference would look like "WHERE
alias.column_name > 10".) The documentation for "AS name" usage specifically
says a "name" cannot be used in a WHERE clause.  I believe you will have to
duplicate the gpsdistance() invocation in the WHERE clause as well.

    SELECT DISTINCT
        zip_code, gpsdistance(34.2865, 118.435, latitude, longitude)
AS distance
    FROM
        zipcodes
    WHERE
        gpsdistance(34.2865, 118.435, latitude, longitude) <= 10.0

Phil Culberson
DAT Services

-----Original Message-----
From: Ed Loehr [mailto:eloehr@austin.rr.com]
Sent: Tuesday, May 02, 2000 1:21 PM
To: Scott Holmes
Cc: pgsql-general
Subject: Re: [GENERAL] Need help with attributes...


Scott Holmes wrote:
>
> I created a latitude/longitude function (it's Richard Lynch's, actually)
> that returns the distance between to points.  What I don't know how to do
> is use this value as a filter in the select statement:
>
> PostgreSQL Error: 1 (ERROR: Attribute 'distance' not found )
> select distinct zip_code, gpsdistance(34.2865, 118.435, latitude,
> longitude) as distance from zipcodes where distance
> <= 10.0
>
> The value for distance is actually available, however:
>
>
> select distinct zip_code, gpsdistance(34.2865, 118.435, latitude,
> longitude) as distance from zipcodes where zip_code
> like '913%'
>
> 91301 16.3049416821461,
> 91302 12.858968990111,
> 91303 8.71667347958831,
> 91304 8.67013652211651,
> 91305 8.45399567001425,
> 91306 .....
>
> Any assistance on this question of syntax would be gratefully accepted

Double-quote distance to make it an alias rather than a column name.  Then,
I'm not sure you can use the double-quoted version in the where clause or
not...

Regards,
Ed Loehr