Try it with parentheses around the (SELECT....).

On 03.09.2012 18:06, Robert Buckley wrote:
> this give an error.
>
> select name,ges_kw_zgb, SELECT round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2);
>
> ERROR:  syntax error at or near "SELECT"
> LINE 2: select name,ges_kw_zgb, SELECT round(100 * (ges_kw_zgb / (se...
>
> ------------------------------------------------------------------------
> *Von:* salah jubeh <s_ju...@yahoo.com>
> *An:* Robert Buckley <robertdbuck...@yahoo.com>;
> "pgsql-general@postgresql.org" <pgsql-general@postgresql.org>
> *Gesendet:* 17:45 Montag, 3.September 2012
> *Betreff:* Re: [GENERAL] Create loop in postgresql
>
> I am wondering why do not you write it like this
>
> select name,ges_kw_zgb, select round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2) ......
>
> Regards
>
>
> ------------------------------------------------------------------------
> *From:* Robert Buckley <robertdbuck...@yahoo.com>
> *To:* "pgsql-general@postgresql.org" <pgsql-general@postgresql.org>
> *Sent:* Monday, September 3, 2012 5:30 PM
> *Subject:* [GENERAL] Create loop in postgresql
>
> Hi,
>
> I am trying to loop through the records in a table and update a
> column. I can do this with a case statement but I would like to
> simplify this to a simple loop statement. I can´t seem to work out how
> to do it though.
>
> Here is the case statement.
>
> select name,ges_kw_zgb,
> case
> When name='Bad Harzburg' then (select round(100 * (ges_kw_zgb /
> (select sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
> When name='Braunlage' then (select round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
> When name='Braunschweig' then (select round(100 * (ges_kw_zgb /
> (select sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
> When name='Büddenstedt' then (select round(100 * (ges_kw_zgb / (select
> sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2))
>
> End as z
>
> from energie.tennet_auswertung_2010
> ;
>
>
>  Instead of having to write the name variable in the function, I would
> just like to iterate through each record and execute the select
> round(100 * (ges_kw_zgb / (select sum(ges_kw_zgb) From
> energie.tennet_auswertung_2010)),2) command. 
>
> If anyone can help I´d me grateful,
>
> cheers,
>
> Rob
>
>
>
>

Reply via email to