[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