Re: create view with numeric data
От | Thomas Kellerer |
---|---|
Тема | Re: create view with numeric data |
Дата | |
Msg-id | b6bnj8$fcr$1@news.hub.org обсуждение исходный текст |
Ответ на | create view with numeric data (cio198@plasa.com (cio198)) |
Список | pgsql-sql |
Haven't tried it, but if you casted the result of the sum to numeric(9,2)? Btw: does the ELSE '0' really work? It seems a bit strange to put a string into a SUM... cast ( sum(CASE WHEN month='01' THEN budgetvalue ELSE 0 END) as numeric(9,2)) AS january Thomas cio198 schrieb: > Hello, > > i've created this table > > CREATE TABLE "budget" ( > "year" character varying NOT NULL, > "month" character varying NOT NULL, > "accountno" character varying NOT NULL, > "costid" character varying NOT NULL, > "valutacode" character varying, > "budgetvalue" numeric(9,2) DEFAULT '0', > "deptname" character varying, > Constraint "budget_pkey" Primary Key ("year", "month", > "accountno", "costid") > ); > > And I want to create the a view using query bellow. > The problem is the numeric data in the view isn't limited to > numeric(9,2) instead it become numeric(65535, 65531). > Is there any way i can restrict it to numeric (9,2) > > TIA > > > CREATE VIEW view_budget > AS SELECT b.year, b.accountno, a.name, > sum(CASE WHEN month='01' THEN budgetvalue ELSE '0' END) AS > january, > sum(CASE WHEN month='02' THEN budgetvalue ELSE '0' END) AS > february, > sum(CASE WHEN month='03' THEN budgetvalue ELSE '0' END) AS > march, > sum(CASE WHEN month='04' THEN budgetvalue ELSE '0' END) AS > april, > sum(CASE WHEN month='05' THEN budgetvalue ELSE '0' END) AS > may, > sum(CASE WHEN month='06' THEN budgetvalue ELSE '0' END) AS > june, > sum(CASE WHEN month='07' THEN budgetvalue ELSE '0' END) AS > july, > sum(CASE WHEN month='08' THEN budgetvalue ELSE '0' END) AS > august, > sum(CASE WHEN month='09' THEN budgetvalue ELSE '0' END) AS > september, > sum(CASE WHEN month='10' THEN budgetvalue ELSE '0' END) AS > october, > sum(CASE WHEN month='11' THEN budgetvalue ELSE '0' END) AS > november, > sum(CASE WHEN month='12' THEN budgetvalue ELSE '0' END) AS > december, > sum(budgetvalue) as totalvalue > FROM budget b inner join account a on b.accountno=a.accountno > GROUP BY year, b.accountno, a.name > ORDER BY b.accountno;
В списке pgsql-sql по дате отправления: