Now even stranger is that I can´t update a column with the query.
Update energie.tennet_auswertung_2010 set "Test"=(
SELECT round(100*ges_kw_zgb/total.totalsum, 2) from
energie.tennet_auswertung_2010,
(select sum(ges_kw_zgb) totalsum From energie.tennet_auswertung_2010) as total
);
ERROR: more than one row returned by a subquery used as an expression
But If I use Insert as below it DOES work!
insert into energie.tennet_auswertung_2010("Test") SELECT
round(100*ges_kw_zgb/total.totalsum, 2)
from energie.tennet_auswertung_2010, (select sum(ges_kw_zgb) totalsum From
energie.tennet_auswertung_2010) as total;
How would I update the rows?
Cheers for any help,
Rob
________________________________
Von: salah jubeh <[email protected]>
An: Robert Buckley <[email protected]>; "[email protected]"
<[email protected]>
Gesendet: 18:23 Montag, 3.September 2012
Betreff: Re: [GENERAL] Create loop in postgresql
Hello Robert,
I just gave an example and this also can be optimized . but let me first
clarify one thing here.
since you have the same behaviour for all values , there is no need to use case
in the first place. So just drop it.
I think below would be the correct syntax
select name,ges_kw_zgb, (SELECT round(100 * (ges_kw_zgb / (select
sum(ges_kw_zgb) From energie.tennet_auswertung_2010)),2)) FROM
energie.tennet_auswertung_2010;
Regards
________________________________
From: Robert Buckley <[email protected]>
To: salah jubeh <[email protected]>; "[email protected]"
<[email protected]>
Sent: Monday, September 3, 2012 6:06 PM
Subject: Re: [GENERAL] Create loop in postgresql
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 <[email protected]>
An: Robert Buckley <[email protected]>; "[email protected]"
<[email protected]>
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 <[email protected]>
To: "[email protected]" <[email protected]>
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