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

  • Jester01
    veterán

    üdv. van egy oracle selectem:

    select bla, bla2, bla3, bla4 from tabla where ...

    egy olyan oszloppal kéne kiegészítenem, amely megszámolja, hogy hány ugyanolyan fajta sor van az adott soron kívül (tehát pl bla azonos az adott sorral).

    a problémám annyi, hogy nem tudok aliast adni, mert az adott programkörnyezet nem teszi ezt lehetővé. ennek oka, hogy mindenképp kiegészíti az én jó kis aliasos selectemet egy alias nélküli where-rel...

    megpróbáltam beágyazni egy másik select-et (ez tűnne a szimpatikusnak):

    select bla, bla2, bla3, bla4,
    (select count(*) from tabla ujra where ujra.bla = bla) from tabla where ...

    ez kihoz egy eredményt, de úgy tűnik ez valami rettentő nagy eredményt ad. úgy sejtem, hogy nem tudtam neki megmondani, hogy csak az adott sor bla értékéhez egyezőket keressen.

    remélem érthető a probléma. elég láma vagyok sql-ben de minden tippet szívesen fogadok. próbáltam rákeresni a neten, de nem jutottam előbbre.

    1. Az alias nem befolyásolja a where-t, ott attól még nyugodtan lehet használni az eredeti nevet is.
    2. ez valami rettentő nagy eredményt ad: Ugyanis az al-selectben ha nem írod ki explicit a táblanevet/aliast akkor az a belső táblá(k)ra vonatkozik. Tehát tulajdonképpen azonosságot írtál (eltekintve attól, hogy NULL != NULL). Helyesen a külső selectben kell megadni tábla aliast és arra hivatkozni. Így ni:

    select bla, bla2, bla3, bla4,
    (select count(*) from tabla where bla = kulso.bla) from tabla kulso where ...

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