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

Tamas Szalai typo3_maillist at tamas.szalai.de
Die Jul 31 14:46:48 CEST 2007


Am Dienstag, den 31.07.2007, 14:20 +0200 schrieb Thomas Mack:
> 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.

Den Tipp mit dem GROUP BY hatte ich hier gestern in der Liste bekommen,
da ich mehrfach doppelte Resultate hatte. Lasse ich 'GROUP BY g.loc_id'
habe ich also noch mehr doppelte Resultate im Ergebnis.

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

Habe die Abfrage ausgeführt. Im Anhang (hoffentlich wird das nicht
rausgefiltert) befindet sich eine result.txt, mit dem Ergebnis.

> Thomas
-------------- nächster Teil --------------
mysql> SELECT * from geodb_hierarchies where loc_id=16096 or loc_id=16097;
+--------+-------+---------+---------+---------+---------+---------+---------+---------+---------+---------+-------------+-----------------+-------------+-----------------+
| loc_id | level | id_lvl1 | id_lvl2 | id_lvl3 | id_lvl4 | id_lvl5 | id_lvl6 | id_lvl7 | id_lvl8 | id_lvl9 | valid_since | date_type_since | valid_until | date_type_until |
+--------+-------+---------+---------+---------+---------+---------+---------+---------+---------+---------+-------------+-----------------+-------------+-----------------+
|  16096 |     6 |     104 |     105 |     116 |     174 |     347 |   16096 |    NULL |    NULL |    NULL | NULL        |            NULL | 2004-12-31  |       300100000 | 
|  16096 |     6 |     104 |     105 |     116 |       0 |     347 |   16096 |    NULL |    NULL |    NULL | 2005-01-01  |       300100000 | 3000-01-01  |       300500000 | 
|  16097 |     6 |     104 |     105 |     122 |     190 |     316 |   16097 |    NULL |    NULL |    NULL | NULL        |            NULL | 2003-12-31  |       300100000 | 
|  16097 |     7 |     104 |     105 |     122 |       0 |     316 |   35883 |   16097 |    NULL |    NULL | 2004-01-01  |       300100000 | 3000-01-01  |       300500000 | 
+--------+-------+---------+---------+---------+---------+---------+---------+---------+---------+---------+-------------+-----------------+-------------+-----------------+
4 rows in set (0.00 sec)

mysql> quit