<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "NL: MATCHED postal codes (file included)"]]></title>
		<link>http://forum.geonames.org/gforum/posts/list/7.page</link>
		<description><![CDATA[Latest messages posted in the topic "NL: MATCHED postal codes (file included)"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>NL: MATCHED postal codes (file included)</title>
				<description><![CDATA[ Greetings -

Included you will find an alternative names file that you can insert with the postal codes that I matched for NL. Bellow you will find the SQL used.

<span class="genmed"><b>Code:</b></span><br>
		<div style="overflow: auto; width: 100%;">
		<pre>
SELECT
--  base.diff_lat,
--  base.diff_lon,
--  base.abs_lat,
--  base.abs_lon,
--  base.record_code,
--  base.country_code                                           AS place_nation,
--  base.admin1_code                                            AS place_admin1,
--  base.admin2_code                                            AS place_admin2,
  --
  -- Comment out the fields above to produce the 'alternate_names' insert table.
  -- The fields bellow are one's that are inserted into the 'altername_names' table.
  --
  base.geoname_id                                             AS geoname_id,
  'post'::text                                                AS iso_language,
  base.postal_code                                            AS alternate_name,
  null::text                                                  AS is_preferred_name,
  null::text                                                  AS is_short_name
  --
FROM &#40;


SELECT
  &#40;CASE WHEN &#40;place_latitude - postal_latitude&#41; = 0.0000
   THEN null::numeric
   ELSE place_latitude - postal_latitude END
  &#41;                                                           AS diff_lat,
  &#40;CASE WHEN &#40;place_longitude - postal_longitude&#41; = 0.0000
   THEN null::numeric
   ELSE place_longitude - postal_longitude END
  &#41;                                                           AS diff_lon, 
  abs&#40;place_latitude - postal_latitude&#41;                       AS abs_lat,
  abs&#40;place_longitude - postal_longitude&#41;                     AS abs_lon,
  x_all.*
FROM &#40;

/*
  SELECT * FROM &#40;
  SELECT DISTINCT ON &#40;gpostal.country_code, gpostal.postal_code, gpostal.place_name, gplaces.feature_code, gplaces.admin1_code, gplaces.admin2_code&#41;
    '1'::text                                                 AS record_code,
  --  gplaces.*
    gplaces.geoname_id                                        AS geoname_id,
    trim&#40;gplaces.full_name&#41;                                   AS full_name,
    trim&#40;gplaces.feature_class&#41;                               AS feature_class,
    trim&#40;gplaces.feature_code&#41;                                AS feature_code,
    trim&#40;gplaces.country_code&#41;                                AS country_check,
    trim&#40;gplaces.admin1_code&#41;                                 AS admin1_check,
    trim&#40;gplaces.admin2_code&#41;                                 AS admin2_check,
    round&#40;gplaces.latitude, 4&#41;                                AS place_latitude,
    round&#40;gplaces.longitude, 4&#41;                               AS place_longitude,
  --  gnames.*,
    'm1-&gt;'::text                                              AS m1,
    gnames.geoname_name_id                                    AS geoname_name_id,
    trim&#40;gnames.alternate_name&#41;                               AS altername_name,
    trim&#40;gnames.iso_language&#41;                                 AS language_code,
  --  gpostal.*,
    'm2-&gt;'::text                                              AS m2,
    trim&#40;gpostal.country_code&#41;                                AS country_code,
    trim&#40;gpostal.postal_code&#41;                                 AS postal_code,
    trim&#40;gpostal.place_name&#41;                                  AS place_name,
    trim&#40;gpostal.admin1_code&#41;                                 AS admin1_code,
    trim&#40;gpostal.admin2_code&#41;                                 AS admin2_code,
    trim&#40;gpostal.admin1_name&#41;                                 AS admin1_name,
    trim&#40;gpostal.admin2_name&#41;                                 AS admin2_name,
    trim&#40;gpostal.admin3_name&#41;                                 AS admin3_name,
    round&#40;gpostal.latitude::numeric&#40;13,8&#41;, 4&#41;                 AS postal_latitude,
    round&#40;gpostal.longitude::numeric&#40;13,8&#41;, 4&#41;                AS postal_longitude,
    gpostal.accuracy                                          AS accuracy
  ----------
  FROM      xwor.geoname_places        AS gplaces 
  LEFT JOIN xwor.geoname_places_names  AS gnames  ON &#40;gnames.geoname_id = gplaces.geoname_id&#41;
  LEFT JOIN xwor.geoname_places_postal AS gpostal ON &#40;lower&#40;gnames.alternate_name&#41; = lower&#40;gpostal.place_name&#41; AND
                                                      gpostal.country_code = gplaces.country_code&#41;
  WHERE     gpostal.place_name IS NOT NULL
  AND       gplaces.feature_class = 'P' --AND gplaces.feature_code = 'PPL'
  ORDER BY  gpostal.country_code, gpostal.postal_code, gpostal.place_name, gplaces.feature_code, gplaces.admin1_code, gplaces.admin2_code
  &#41; AS x_1

UNION
*/

  SELECT * FROM &#40;
  SELECT DISTINCT ON &#40;gpostal.country_code, gpostal.postal_code, gpostal.place_name, gplaces.feature_code, gplaces.admin1_code, gplaces.admin2_code&#41;
    '2'::text                                                 AS record_code,
  --  gplaces.*
    gplaces.geoname_id                                        AS geoname_id,
    trim&#40;gplaces.full_name&#41;                                   AS full_name,
    trim&#40;gplaces.feature_class&#41;                               AS feature_class,
    trim&#40;gplaces.feature_code&#41;                                AS feature_code,
    trim&#40;gplaces.country_code&#41;                                AS country_check,
    trim&#40;gplaces.admin1_code&#41;                                 AS admin1_check,
    trim&#40;gplaces.admin2_code&#41;                                 AS admin2_check,
    round&#40;gplaces.latitude, 4&#41;                                AS place_latitude,
    round&#40;gplaces.longitude, 4&#41;                               AS place_longitude,
  --  gnames.*,
    'm1-&gt;'::text                                              AS m1,
    gnames.geoname_name_id                                    AS geoname_name_id,
    trim&#40;gnames.alternate_name&#41;                               AS altername_name,
    trim&#40;gnames.iso_language&#41;                                 AS language_code,
  --  gpostal.*,
    'm2-&gt;'::text                                              AS m2,
    trim&#40;gpostal.country_code&#41;                                AS country_code,
    trim&#40;gpostal.postal_code&#41;                                 AS postal_code,
    trim&#40;gpostal.place_name&#41;                                  AS place_name,
    trim&#40;gpostal.admin1_code&#41;                                 AS admin1_code,
    trim&#40;gpostal.admin2_code&#41;                                 AS admin2_code,
    trim&#40;gpostal.admin1_name&#41;                                 AS admin1_name,
    trim&#40;gpostal.admin2_name&#41;                                 AS admin2_name,
    trim&#40;gpostal.admin3_name&#41;                                 AS admin3_name,
    round&#40;gpostal.latitude::numeric&#40;13,8&#41;, 4&#41;                 AS postal_latitude,
    round&#40;gpostal.longitude::numeric&#40;13,8&#41;, 4&#41;                AS postal_longitude,
    gpostal.accuracy                                          AS accuracy
  ----------
  FROM      xwor.geoname_places_postal AS gpostal
  LEFT JOIN xwor.geoname_places        AS gplaces ON &#40;lower&#40;gpostal.place_name&#41; = lower&#40;gplaces.full_name&#41; AND
                                                      gpostal.country_code = gplaces.country_code AND
                                                      gpostal.admin1_code  = gplaces.admin1_code AND
                                                      gpostal.admin2_code  = gplaces.admin2_code&#41;
  LEFT JOIN xwor.geoname_places_names  AS gnames  ON &#40;lower&#40;gpostal.place_name&#41; = lower&#40;gnames.alternate_name&#41; AND
                                                      gnames.geoname_id = gplaces.geoname_id&#41;
  WHERE     gpostal.place_name IS NOT NULL
  AND       gplaces.feature_class = 'P' --AND gplaces.feature_code = 'PPL'
--  ORDER BY  gpostal.country_code, gpostal.postal_code, gpostal.place_name, gplaces.feature_code, gplaces.admin1_code, gplaces.admin2_code
  &#41; AS x_2


&#41; AS x_all
-- ORDER BY country_code, postal_code, place_name, geoname_id, record_code
&#41; AS base
WHERE    base.record_code = '2'
AND      base.country_code = 'NL'
--
ORDER BY country_code, postal_code, place_name, geoname_id
;
</pre>
		</div>

Regards,
]]></description>
				<guid isPermaLink="true">http://forum.geonames.org/gforum/posts/list/1624.page#6723</guid>
				<link>http://forum.geonames.org/gforum/posts/list/1624.page#6723</link>
				<pubDate><![CDATA[Sat, 21 Nov 2009 21:39:30]]> GMT</pubDate>
				<author><![CDATA[ artigas]]></author>
			</item>
	</channel>
</rss>