Need help with attributes...

Started by Scott Holmesalmost 26 years ago3 messagesgeneral
Jump to latest
#1Scott Holmes
sholmes@pacificnet.net

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
---------------------------------------------------------------------

#2Ed Loehr
eloehr@austin.rr.com
In reply to: Scott Holmes (#1)
Re: 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

#3Culberson, Philip
philip.culberson@dat.com
In reply to: Ed Loehr (#2)
RE: Need help with attributes...

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