X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 64AE652B1B for ; Tue, 12 Jul 2005 15:32:41 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 41131-05 for ; Tue, 12 Jul 2005 18:32:34 +0000 (GMT) Received: from svr2.postgresql.org (svr2.postgresql.org [65.19.161.25]) by svr1.postgresql.org (Postfix) with ESMTP id 64AA452ABD for ; Tue, 12 Jul 2005 15:32:29 -0300 (ADT) Received: from fzkmail2.fzk.de (fzkmail2.fzk.de [141.52.27.52]) by svr2.postgresql.org (Postfix) with SMTP id 4E0EDF1AF6 for ; Tue, 12 Jul 2005 12:31:12 +0100 (BST) Received: FROM resy5.fzk.de BY fzkmail2.fzk.de ; Tue Jul 12 13:34:42 2005 +0200 Received: from rodos.fzk.de (resy6.fzk.de [141.52.68.10]) by resy5.fzk.de (8.12.7/8.12.7/SuSE Linux 0.6) with ESMTP id j6CBYfE2027927; Tue, 12 Jul 2005 13:34:41 +0200 Message-ID: <42D3AACF.98C5629B@rodos.fzk.de> Date: Tue, 12 Jul 2005 13:34:40 +0200 From: Christoph Haller X-Mailer: Mozilla 4.77 [en] (X11; U; HP-UX B.10.20 9000/780) X-Accept-Language: en MIME-Version: 1.0 To: Mauricio Fernandez Cc: pgsql-sql@postgresql.org Subject: Re: PostgreSQL - ERROR: Cannot cast type character varying to References: Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by AMaViS - amavis-milter (http://www.amavis.org/) X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.023 tagged_above=0 required=5 tests=AWL X-Spam-Level: X-Archive-Number: 200507/101 X-Sequence-Number: 22079 Under PostgreSQL 7.3 it was necessary to use an intermediate cast to text when converting from varchar to int4. sum( unidades::text::int4 ) should do. Regards, Christoph Mauricio Fernandez wrote: > > Hello I´m new in the list, and I want to learn a lot about postgresql, now > I´m working in a database and I have this problem: > > I have a table called historicoventas as follows (just the structure) > > > historicoventas > > ( > > codigopedido varchar(20) > > codigohospital varchar(20) > > fecha varchar(15) > > producto varchar(20) > > unidades varchar(10) > > costo varchar(20) > > ) > > > And I want to create a view based on that table whit this instruction: > > > CREATE OR REPLACE VIEW vw_temphistoricoventas > > (Pedido, Fecha, Hospital, Producto, Unidades, Costo) > > AS > > SELECT codigoPedido , (substring( fecha from 1 for 4 ) || '-' > > || substring( fecha from 5 for 2 ) || '-' > > || substring( fecha from 7 for 2 ) ) AS fecha, > > codigoHospital , producto , sum( unidades::int4 ) AS unidades, sum( > > costo::float4 ) AS costo > > FROM historicoventas > > WHERE ((producto = '759928') OR (producto = '759936') OR > > (producto = '4002382') OR (producto = '4002580')) > > GROUP BY codigoPedido, fecha, codigoHospital, producto > > ORDER BY fecha; > But I always get this message: > > ERROR: Cannot cast type character varying to integer > My developer workstation is under win xp and postgresql 8.0 but in > production server (external web hosting partner) I have a Linux Red Hat with > kernel 2.4.21-27.0.2.ELsmp y PostgreSQL 7.3. > In local machine all castings between data types works fine but in server it > doesn´t. > convertions like sum(unidades::int4) works fine and reading the postgresql > 7.3 docs I can see this type of convertions are enabled by the system > Can somebody help me with this topic? > > Thanks a lot > > > > > Mauricio Fernández A. > > Ingeniero de Sistemas > > Universidad Autónoma de Manizales > > mfacontacto@ono.com > > movil: 607365968 > > > > P.D. Some historicoventas table rows can be: > > codPedido codHospital fecha producto unidades > > costo > > 0001001299 100058 20050103 759936 1 > > 2375 > > 0001001299 100058 20050103 759928 1 > > 2375 > > 0001001300 100078 20050103 759936 1 > > 2375 > > 0001003044 100086 20050614 759936 1 > > 2275.25 > > 0001003128 100062 20050623 759936 2 > > 4550.5 > > 0001003129 100069 20050623 759936 2 > > 4550.5 > > 0001003131 100019 20050623 759928 5 > > 11376.25 > > 0001003131 100019 20050623 759936 3 > > 6825.75 > > 0001003132 100075 20050623 759936 4 > > 9101 > > 0001003133 100106 20050623 759936 2 > > 4550.5 > > 0001003134 100031 20050623 759936 2 > > 4550.5 > > 0001003135 100037 20050623 759936 3 > > 6825.75 > > 0001003136 100009 20050623 759936 5 > > 11376.25 > > 0001003137 100009 20050623 759936 1 > > 2275.25 > > 0001003138 100024 20050623 759936 4 > > 9101 > > ------------------------------------------------------------------------ > Name: winmail.dat > winmail.dat Type: application/ms-tnef > Encoding: base64 > > ------------------------------------------------------------------------ > > ---------------------------(end of broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly