Kun yritän yksinkertaista kyselyä

 SELECT "Water_Service_Area_Boundaries_Non_Cadastral"."Network", count(*), sum(st_length(geometry)) FROM "W_Mains_DSC_ExclAbandoned", "Water_Service_Area_Boundaries_Non_Cadastral" WHERE ST_Intersects("Water_Service_Area_Boundaries_Non_Cadastral", "W_Mains_DSC_ExclAbandoned") GROUP BY "Water_Service_Area_Boundaries_Non_Cadastral"."Network"  

Saan tämän virheen

Query preparation error on PRAGMA table_info(_tview): ambiguous column name: geometry 

Kun yritän sitä ilman st_length se luo yksinkertaisen ryhmän, jolla on laskelmat.

Myös seuraavat toimivat hyvin

  Select sum(st_length(geometry)), count(*) From W_Mains_DSC_ExclAbandoned  

Esimerkkejä kyselyn osajoukosta, jotka toimivat itsenäisesti, mutta eivät yhteen kietotuna

Vain kokonaispituus

esimerkki1

Vain ryhmä

esimerkki2

Kun yksinkertaisesti lisätään st_pituus

esimerkki3

Olen kokeillut .geometry-sovellusta ST_Intersects ja tämä antaa oikeat laskelmat, mutta antaa pragma-geomin kokeile virhettä, kun summa lisätään

esimerkki4

Kommentit

  • ST_Length vaatii projektiotietoja (SRID), katso gis.stackexchange.com/questions/35462/…
  • Ensimmäinen kysely viittaa kahteen taulukkoon sarakkeella geometry. Sinun on määritettävä geometrinen sarake, johon haluat suorittaa ST_length(). Aivan kuten määritit taulukon Network -sarakkeelle
  • En ymmärrä, miksi nämä 2 eivät ' ymmärrä kyselyt ongelmien kanssa toimivat, kun ne suoritetaan itse. Lisää ' kyselyyn näytön nappauksia.
  • @she_weeds valitettavasti tajusin, että ilman .geometriaa sitä ei ollut ' t antaa virheen, mutta ei myöskään ' t antanut oikeaa arvoa laskelmille, joten leikkauspiste ei toimi ' t. Verkkoalueella olevien viivojen pituuden ajamisesta aiheutuva ongelma aiheuttaa kuitenkin saman ongelman.

Vastaa

Mielestäni et tarvitse mitään SRID -tunnusta, koska et toimi ST_Length_Spheroid() -palvelun kanssa.

Mitä @she_weeds osoittaa, on todellakin oikea.

 SELECT ws."Network", count(ws."Network"), sum(st_length(ws.geometry)) FROM "Water_Service_Area_Boundaries_Non_Cadastral" AS ws, "W_Mains_DSC_ExclAbandoned" AS wmain WHERE ST_Intersects(ws.geometry, wmain.geometry) GROUP BY ws."Network"  

Kommentit

  • Kiitos – niin sen piti tietää, että se ' s sellaisen geometrian yhdelle syötetiedostolle, jonka pituuden tarvitsemme.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *