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 > > > >