[opengeodb] Was stimmt mit meiner SQL-Abfrage nicht?

Thomas Mack mack at ifis.cs.tu-bs.de
Die Jul 31 14:20:05 CEST 2007


Am Dienstag, 31. Juli 2007 14:01 schrieb Tamas Szalai:
> SELECT  g.loc_id AS "ID",
>         g.text_val AS "Ort"
>
> FROM    geodb_textdata g,
>         geodb_textdata g1,
>         geodb_hierarchies gh,
>         geodb_locations loc
>
> WHERE   gh.loc_id = g.loc_id
> AND     gh.id_lvl5 = g1.loc_id
> AND     g1.loc_id = 316 /*ID des Landkreises*/
> AND     g.text_type = 500100000
> AND     g1.text_type = 500100000
> AND     loc.loc_type = 100700000
> AND     loc.loc_id = g.loc_id
> AND     g.is_default_name = true
> AND     g1.is_default_name = true
> AND	g.valid_until >= '2007-07-31'
> AND	g1.valid_until >= '2007-07-31'
> AND     gh.level = 6
>
> GROUP BY g.loc_id
> ORDER BY 2
>
> Bei der letzten Abfrage (Landkreis Wernigerode) ist komischwerweise 2x
> Elbingerode mit verschiedener ID im Ergebnis. :/

Also mal kurz dazu:

1) 'GROUP BY' kenn ich so, daß alle Attribute gruppiert werden müssen (also 
auch g.text_val), bis auf einen arithmetischen Operator (also 
z.B.avg(g.loc_id), sonst macht das keinen Sinn, und sonst klappt das auch 
nicht. Mein Postgres sieht es genauso, deshalb funktioniert diese Anfrage bei 
mir nicht in dieser Form.

2) Wenn ich 'GROUP BY g.loc_id' weglasse, bekomme ich nur ein Elbingerode in 
WR.

3) Elbingerode gibt es in WR und in OHA in meiner älteren DB hier. Was gibt 
denn ein 'SELECT * from geodb_hierarchies where loc_id=16096 or 
loc_id=16097;' bei Dir zurück?

Thomas