From: | Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe> |
---|---|
To: | "Eugenio Segura" <eugenio(dot)segura(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Filas a columnas |
Date: | 2007-01-24 20:27:37 |
Message-ID: | 51183924.20070124152737@sedapal.com.pe |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
============
Con fecha Miércoles, 24 de Enero de 2007, 02:58:01 p.m., escribió:
> Tengo una tabla de alumnos y la nota digamos...
> Estudiantes:
> Nombre Nota Periodo Materia
> Eugenio 60 0 Matematica
> Eugenio 70 1 Matematica
> Eugenio 80 2 Matematica
> Eugenio 61 0 Español
> Eugenio 71 1 Español
> Eugenio 81 2 Español
> Obiamente otros datos mas...
> pero lo q necesito es obtener esto
> Nombre Nota Nota Nota Materia
> Eugenio 60 70 80 Matematica
> Eugenio 61 71 81 Español
> intente hacer 3 joins en la misma tabla pero dura demaciado y se traba
> el programa, porq son muchos alumnos
> alguien sabe una mejor forma de hacerlo?
con esto te irá de perlas...
select v2.nombre,v2.materia,max(v2.periodo1),max(v2.periodo2),max(v2.periodo3)
from (select v.nombre,v.materia,
case when v.periodo = 0 then v.nota end periodo1,
case when v.periodo = 1 then v.nota end periodo2,
case when v.periodo = 2 then v.nota end periodo3
from (select nombre , materia ,periodo,nota
from alumno) v) v2
group by v2.nombre,v2.materia;
servido...
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 9: el optimizador ignorará el uso de recorridos de índice si los
> tipos de datos de las columnas no coinciden
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Carlos | 2007-01-24 20:35:56 | Re: Problemas al conectar postgresql |
Previous Message | Edwin Quijada | 2007-01-24 20:04:19 | Re: modelo cliente - servidor en postgresql |