Re: Why does this plpgslq always return 1?
От | Jan Wieck |
---|---|
Тема | Re: Why does this plpgslq always return 1? |
Дата | |
Msg-id | 200107301656.f6UGuUg07305@jupiter.us.greatbridge.com обсуждение исходный текст |
Ответ на | Re: Why does this plpgslq always return 1? (Stephan Szabo <sszabo@megazone23.bigpanda.com>) |
Список | pgsql-sql |
Stephan Szabo wrote: > On Fri, 27 Jul 2001, John Oakes wrote: > > > Can anyone tell me why this always return 1? Thanks! > > > > CREATE FUNCTION passrate(date, date, text) RETURNS float AS ' > > > > DECLARE > > begindate ALIAS FOR $1; > > enddate ALIAS FOR $2; > > passfail ALIAS FOR $3; > > ret float; > > countp float; > > counttotal float; > > > > > > BEGIN > > > > SELECT INTO countp COUNT(*) > > FROM benchmark > > WHERE passfail = passfail; > > Ehhh? Were you expecting that to substitue > for *one* of those passfails and not the > other? ;) > > Rename the alias variable to something else. > > > > > SELECT INTO counttotal COUNT(*) > > FROM benchmark; > > > > ret := countp / counttotal; And check for zero before doing a division, as a transaction abort is usually not exactly what you want. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com # _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
В списке pgsql-sql по дате отправления: