Új hozzászólás Aktív témák

  • nyunyu

    félisten

    válasz DeFranco #4701 üzenetére

    Ja, hogy az osszeget is aggregálni akarja az egyed_azonosito mentén?
    Akkor használj valami oszlopfüggvényt az osszeg oszlopra, és akkor nem fog beszólni érte.

    Mondjuk: sum(ertek)/min(osszeg)

    (Mivel ugyanahhoz az egyed_azonosito osszes sorához ugyanaz az osszeg joinolódik, mindegy, hogy min() vagy max()-ot használsz aggregálásra)

    Ez azért van, mert a pivotnál mindent sorfejlécnek értelmezünk ami nincs benne a sum és a for mezőkben és az a lekérdezés sorrendje szerinti hierarchiában alábontást jelent?

    PIVOT az gyakorlatilag group by-ol az oszlopfüggvényekben és a FORnál sem hivatkozott oszlopokra, azokból fog állni a fejléc, majd a FOR után felsorolt értékekből.
    Ezek alá teszi be a "group by" értékeit változatlanul, melléjük az oszlopfüggvényekkel számolt aggregált értéket a FORban felsorolt oszlopok szerint szétválogatva.

    Esetedben az egyes oszlopok tartalma ez lesz:
    - egyed_azonosito
    - (select sum(ertek)/min(osszeg) where csoport_kepzo='A' group by egyed_azonosito) as 'A'
    - (select sum(ertek)/min(osszeg) where csoport_kepzo='B' group by egyed_azonosito) as 'B'
    - (select sum(ertek)/min(osszeg) where csoport_kepzo='C' group by egyed_azonosito) as 'C'
    - ...
    Mintha egy rakat group_by lenne egymás mellett, különböző where feltétellel.

    [ Szerkesztve ]

    Hello IT! Have you tried turning it off and on again?

Új hozzászólás Aktív témák