Jak to resit pomoci SQL ?
Jan Serak
sherry na pikebo.cz
Úterý Březen 11 11:53:17 CET 2003
Karel Zak wrote:
> (smer je urcen pomoci boolean 'isin')
>
> SELECT * FROM rule ORDER BY name;
> name | isin | data
> ------+------+-------
> AAA | t | 125
> AAA | f | 25
> AAA | f | 10000
> BBB | t | 1025
> BBB | f | 1000
> CCC | t | 100
> CCC | f | 46
> DDD | f | 46
> EEE | t | 40000
>
> SELECT name, i.data AS in, o.data AS out
> FROM (
> SELECT name, sum(data) AS data FROM rule WHERE isin='t' GROUP BY name
> ) i FULL JOIN (
> SELECT name, sum(data) AS data FROM rule WHERE isin='f' GROUP BY name
> ) o USING( name );
>
> name | in | out
> ------+-------+-------
> AAA | 125 | 10025
> BBB | 1025 | 1000
> CCC | 100 | 46
> DDD | | 46
> EEE | 40000 |
Bez joinu:
SELECT name,sum(replace(isin,'t',data,'f',0)) as
in,sum(replace(isin,'f',data,'t',0)) as out
from rule
group by name;
Jan Serak
Další informace o konferenci Test