Créer une table à partir d'autres tables

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Créer une table à partir d'autres tables

tariqmc
Bonjour à tous,

 j'utilise la version 4.0 d'orbisgis et j'ai voulu créer une table C à partir de deux autres tables A et B.
A(the_geom, ID)
B(ID, field)
C(the_geom, field, ID)

je l'ai fait comme suit:

create table C as select A.*, B.field from A, B where A.ID=B.ID;

et j'ai l'erreur suivante:

ERROR [Thread-43] (RunnableBackgroundJob.java:73) - Erreur fatale lors du processus Exécuter le script
org.gdms.data.types.IncompatibleTypesException: Expressions of type double and typestring cannot be compared.


Merci beaucoup
Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

Nicolas F.
Administrator
Bonjour,

"Expressions of type double and typestring cannot be compared" Les chaînes de caractères et les valeurs numériques ne peuvent être comparées. La seule comparaison de la requête est A.ID=B.ID donc cela veut dire que un des identifiant est une chaîne de caractère.

Il faut donc convertir en numérique la colonne ID qui est en chaîne de caractère.

Cordialement,

Nicolas Fortin
Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

tariqmc
Merci bien,

Mais pour convertir cette colonne est-ce que je dois utiliser une fonction spécifique?

Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

Nicolas F.
Administrator

Il ne semble pas que GDMS supporte l’instruction “alter table alter column ID int”

Il est possible d’ajouter une nouvelle colonne pour le bon type;

alter table A rename column ID to ID2;
alter table A add COLUMN ID INT ;
update A set ID = ID2::int;
alter table A drop column ID2;

Cordialement,

-- 
Nicolas Fortin IRSTV FR CNRS 2488 GIS http://orbisgis.org Spatial DB http://h2gis.org Noise http://noisemap.orbisgis.org

On 2015-07-22 13:42, tariqmc [via OrbisGIS] wrote:

Merci bien,

Mais pour convertir cette colonne est-ce que je dois utiliser une fonction spécifique?

 
Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

tariqmc
ça marche mais le problème c'est que la nouvelle colonne est remplie entièrement en "null"
Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

Nicolas F.
Administrator

On ne peut convertir en numérique que les identifiants qui sont non nul.

J’ai testé ceci à l’instant et ça converti bien en numérique le champ:


drop table IF EXISTS a;
create table a(id string, the_geom geometry);
insert into a values ('1', 'POINT(1 1)'::geometry);
insert into a values ('2', 'POINT(2 2)'::geometry);

alter table a rename column id to id2;
alter table a add COLUMN id INT ;
update a set id = id2::int;
alter table a drop column id2;

--

Nicolas Fortin
IRSTV FR CNRS 2488
GIS        http://orbisgis.org
Spatial DB http://h2gis.org
Noise      http://noisemap.orbisgis.org

 

On 2015-07-22 15:50, tariqmc [via OrbisGIS] wrote:

ça marche mais le problème c'est que la nouvelle colonne est remplie entièrement en "null"


If you reply to this email, your message will be added to the discussion below:
http://orbisgis.3871844.n2.nabble.com/Creer-une-table-a-partir-d-autres-tables-tp7575349p7575353.html
To start a new topic under OrbisGIS Users, email [hidden email]
To unsubscribe from OrbisGIS Users, click here.
NAML

 

Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

tariqmc
LE_1276317000_ORB.csv

Voilà ci-joint, le fichier sur lequel je travaille et où Orbisgis lit les chiffres comme Chaînes de caractères.
J'ai bien essayé mais toujours pas de solution ;)

Merci
Reply | Threaded
Open this post in threaded view
|

Re: Créer une table à partir d'autres tables

Nicolas F.
Administrator

Il est préférable de passer par le format DBF pour ce genre de données. Donc utiliser OpenOffice, LibreOffice ou bien encore Excel/Access pour convertir de csv vers du dbf.

 PS: Je ne suis plus disponible jusqu’à mercredi prochain


Cordialement,

-- 
Nicolas Fortin IRSTV FR CNRS 2488 GIS http://orbisgis.org Spatial DB http://h2gis.org Noise http://noisemap.orbisgis.org

 

On 2015-07-22 16:12, tariqmc [via OrbisGIS] wrote:

LE_1276317000_ORB.csv

Voilà ci-joint, le fichier sur lequel je travaille et où Orbisgis lit les chiffres comme Chaînes de caractères.
J'ai bien essayé mais toujours pas de solution ;)

Merci