Avatar billede tuba Nybegynder
20. april 2004 - 22:43 Der er 3 kommentarer og
1 løsning

referere til et summeret felt

hvis jeg et sted i min sql-forespørgsel bruger en sum, f.eks sum(felt1+fel2) AS sum1, kan jeg så senere i min sql-forespørgsel referere til resultat feks sum1 * felt 3 eller er jeg nødt til at foretage summeringen igen ?
Avatar billede pnielsen Nybegynder
20. april 2004 - 22:58 #1
Er det sådan her du mener ?

select (felt1+fel2) AS sum1, (felt1+fel2)*3 as sum 2 from mytabel ?

Eller mener du at du vil refererer i en where clause ?
Avatar billede pnielsen Nybegynder
20. april 2004 - 23:12 #2
Du kan jo skrivve
select (felt1+fel2) AS sum1, (felt1+fel2)*3 as sum2 from mytabel
where (felt1+fel2)*3 > 10;

Mener du om du her kan skrive sum2 > 10 i den where clause eller misforstår jeg dig helt ?
Avatar billede Slettet bruger
21. april 2004 - 00:07 #3
Selvom det lyder besværligt, så er du nødt til at skrive hele udtrykket igen.

Men måske har du Oracle 9 eller derover? I så fald kan du bruge inline views.

I det følgende eksempel laver jeg en sum over alle lønninger, og beregner derefter hver enkelt medarbejders lønandel:

SQL> r
  1  with sumSal as (
  2  select sum(sal) a from emp
  3  )
  4  select e.ename, e.sal, s.a, round (100 * e.sal / s.a)
  5* from sumsal s, emp e

ENAME            SAL          A ROUND(100*E.SAL/S.A)
---------- ---------- ---------- --------------------
SMITH            800      29025                    3
ALLEN            1600      29025                    6
WARD            1250      29025                    4
JONES            2975      29025                  10
MARTIN          1250      29025                    4
BLAKE            2850      29025                  10
CLARK            2450      29025                    8
SCOTT            3000      29025                  10
KING            5000      29025                  17
TURNER          1500      29025                    5
ADAMS            1100      29025                    4
JAMES            950      29025                    3
FORD            3000      29025                  10
MILLER          1300      29025                    4
Avatar billede tuba Nybegynder
21. april 2004 - 10:46 #4
...ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester