Tipo de dato de una columna

From: Alexis Camue <acamue(at)estudiantes(dot)uci(dot)cu>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Tipo de dato de una columna
Date: 2012-05-26 02:45:57
Message-ID: 30a8b335-8ecf-47e6-b38c-78e22dcfca2f@ucimail4.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas lista:
1-¿Cómo puedo saber el tipo de dato de una columna a partir de uno de sus elementos?¿Esto es posible?
Ejemplo: La tabla persona, tiene una columna de tipo text llamada no nombre y esta un elemento ´José´.
A la consulta se le pasaría ´José´ y devolvería "text".

2- ¿Donde puedo encontrar un listado o información sobre todos los tipos de datos que para insertarse en una tabla necesitan estar entre comillas simples? Como los character varying, varchar, character, char, text..etc ¿O todos los llevan menos los numéricos?
Gracias de antemano...

"Quien quiere hacer busca medios...quien no quiere hacer busca justificaciones"
"Cada persona desconocida, es un amigo esperando por ti"

Alexis Camué Hernandez
apto: 102 206
Telf: (837)2926
Universidad de Ciencias Informáticas
----- Mensaje original -----

De: "Anthony" <asotolongo(at)uci(dot)cu>
Para: "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar>
CC: pgsql-es-ayuda(at)postgresql(dot)org
Enviados: Jueves, 24 de Mayo 2012 11:02:45
Asunto: Re: [pgsql-es-ayuda] Funcion ventana nueva consulta

El 24/05/2012 9:45, Conrado Blasetti escribió:

Julio, muchas gracias por responder.

Ahora, se me plantea una nueva duda con respecto a la sentencia (perdón por no haberla expuesto en el msg anterior)

Teniendo los datos de esta manera (se agrega una fecha)

drop table foo;

create table foo (
id serial not null,
tipo numeric(10) not null,
fecha date not null,
imp numeric(10,2) not null,
CONSTRAINT foo_id PRIMARY KEY (id)
);

insert into foo (fecha,tipo, imp) values ('01/01/2012'::date,1,30.5);
insert into foo (fecha,tipo, imp) values ('02/01/2012'::date,1,20.25);
insert into foo (fecha,tipo, imp) values ('03/01/2012'::date,2,30);
insert into foo (fecha,tipo, imp) values ('04/01/2012'::date,1,75.3);
insert into foo (fecha,tipo, imp) values ('05/01/2012'::date,1,75.3);
insert into foo (fecha,tipo, imp) values ('06/01/2012'::date,2,100);

insert into foo (fecha,tipo, imp) values ('15/04/2012'::date,1,30.5+7);
insert into foo (fecha,tipo, imp) values ('16/04/2012'::date,1,20.25+7);
insert into foo (fecha,tipo, imp) values ('17/04/2012'::date,2,30+7);
insert into foo (fecha,tipo, imp) values ('18/04/2012'::date,1,75.3+7);
insert into foo (fecha,tipo, imp) values ('19/04/2012'::date,1,75.3+7);
insert into foo (fecha,tipo, imp) values ('20/04/2012'::date,2,100+7);

insert into foo (fecha,tipo, imp) values ('22/05/2012'::date,1,30.5+17);
insert into foo (fecha,tipo, imp) values ('22/05/2012'::date,1,20.25+17);
insert into foo (fecha,tipo, imp) values ('23/05/2012'::date,2,30+17);
insert into foo (fecha,tipo, imp) values ('23/05/2012'::date,1,75.3+17);
insert into foo (fecha,tipo, imp) values ('24/05/2012'::date,1,75.3+17);
insert into foo (fecha,tipo, imp) values ('24/05/2012'::date,2,100+17);

SQL agregando la fecha.

select fecha,tipo1, tipo2, sum(imp) over (order by id)
from (select id, fecha, imp as tipo1, 0 as tipo2, imp
from foo
where tipo= 1
union
select id, fecha, 0 as tipo1, imp as tipo2, imp*-1
from foo
where tipo= 2) Aux

La consulta es, cómo hacer para obtener datos “semi” detallados?

Digamos, quiero ver el detalle del mes 4, debería ejecutar el sql con el where correspondiente.
Pero el tema es que, la columna SUM, me acumula sobre los registros del where (es lógico porque es lo que le pido), estaría necesitando un acumulado de imp1 imp2 y sum() para lo anterior a abril, que se muestre el detalle de abril movimiento por movimiento (pero que el acumulado sume lo anterior) y luego otro acumulado de todo lo que hay después de abril de forma resumida, en este caso, todo ordenado por fecha, mostrando algo asi:


fecha
imp1
imp2
acumulado
tipo

null
201,35
130
71,35
RESUMEN





15/04/2012
37,5

108,85
detalle

16/04/2012
27,25

136,1
detalle

17/04/2012

37
99,1
detalle

18/04/2012
82,3

181,4
detalle

19/04/2012
82,3

263,7
detalle

20/04/2012

107
156,7
detalle





null
269,35
164
262,05
RESUMEN




Se podrá resolver también?

Nuevamente, gracias
Saludos,
Conrado

bueno agrégale esto al final y ya
where fecha between '2012-04-01' and '2012-04-30'

;-)
saludos

10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION

http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eduardo Arenas C. 2012-05-26 12:21:35 Re: Funcion ventana nueva consulta
Previous Message Alejandro Carrillo 2012-05-24 20:53:41 Re: [pgsql-es-ayuda] Insert automáticos en tablas (Ejecución programada mensual)