| From: | will trillich <will(at)serensoft(dot)com> | 
|---|---|
| To: | pgsql-general(at)postgresql(dot)org | 
| Subject: | function to operate on same fields, different records? | 
| Date: | 2001-03-29 19:17:29 | 
| Message-ID: | 20010329131729.B27033@mail.serensoft.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
is this kind of thing possible---?
	select gpa(student) from student where id=7121;
	select gpa(course) from course where id=29931;
	select gpa(prof) from prof where id=1321;
i've got several tables each of which have
	create table <various-and-sundry> (
		...
		a int4,
		b int4,
		c int4,
		d int4,
		f int4,
		...
	);
since i'd like to AVOID this nonsense--
	create view courseGPA as
	select *,
			(a * 4 + b * 3 + c * 2 + d)
			/
			(a + b + c + d + f) as gpa
		from course;
	create view profGPA as
	select *,
			(a * 4 + b * 3 + c * 2 + d)
			/
			(a + b + c + d + f) as gpa
		from prof;
	create view studentGPA as
	select *,
			(a * 4 + b * 3 + c * 2 + d)
			/
			(a + b + c + d + f) as gpa
		from student;
i'd rather be able to do this--
	create function gpa( unknowntableTuple ) returns float8 as '
		select
			($1.a * 4 + $1.b * 3 + $1.c * 2 + $1.d)
			/
			($1.a + $1.b + $1.c + $1.d + $1.f)
	' language 'sql';
any chance of working something like that? if so, how? if not,
well, waaah!
-- 
does a brain cell think?
will(at)serensoft(dot)com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2001-03-29 19:39:21 | Re: missing data | 
| Previous Message | will trillich | 2001-03-29 19:09:50 | Re: timestamp/function question |