Aktív témák

  • lapa

    veterán

    üdv. nem értek az sql-hez, de meg kell oldanom valami és nem jutok előbbre. igyekszem érthetően leírni miről van szó.

    van egy tábla megbízásokkal (ssdg_sendung). minden megbízáshoz tartozhat egy vagy több számlarekord (slaf_leistanf). szeretném az összes megbízás adatait megjeleníteni, valamint a megbízások számlarekordjaiból azok bizonyos mezői szerint csoportosított összegeket. tehát pl.

    megbízás---számla kimenő nyitott---számla kimenő lezárt---számla bejövő nyitott---....
    blabla---------2---------------------------------1--------------------------------0----------------------------

    a mostani lekérdezés tele van pluszjelekkel (ez outer join?), a számlarekordok csoportosításánál külön nevek (trzu, trzuok...) vannak. a selectben próbáltam decode-ot, sum-ot meg nvl-t de nem jön össze mert vagy rossz összeget ad ki, vagy nem jeleníti meg az olyan sorokat, ahol valamilyen számlasor hiányzik. a lekérdezés jelenleg:

    SELECT
    abs.sda_sdgid,
    abs.adr_adrid,
    abs.adr_name1, abs.adr_str, abs.adr_ort, abs.adr_plz, abs.adr_staid,
    count(trzu.laf_lafid),
    count(trzuok.laf_lafid),
    count(trab.laf_lafid),
    count(trabok.laf_lafid)


    FROM
    ssdg_sendung,
    ssda_sdgadr abs, sadr_adresse abs,
    slaf_leistanf trzu,
    slaf_leistanf trzuok,
    slaf_leistanf trab,
    slaf_leistanf trabok

    WHERE
    abs.adr_adrid(+) = abs.sda_adrid AND sdg_sdgid = abs.sda_sdgid(+) AND abs.sda_satid(+) = 'SU' AND
    trzu.laf_sdgid(+) = sdg_sdgid and trzu.laf_latid(+) = 'TR' and trzu.laf_lauid(+) = 'ZU' and trzu.laf_lasid(+) = '200' and
    trzuok.laf_sdgid(+) = sdg_sdgid and trzuok.laf_latid(+) = 'TR' and trzuok.laf_lauid(+) = 'ZU' and trzuok.laf_lasid(+) = '420' and
    trab.laf_sdgid(+) = sdg_sdgid and trab.laf_latid(+) = 'TR' and trab.laf_lauid(+) = 'AB' and trab.laf_lasid(+) = '200' and
    trabok.laf_sdgid(+) = sdg_sdgid and trabok.laf_latid(+) = 'TR' and trabok.laf_lauid(+) = 'AB' and trabok.laf_lasid(+) = '420'

    GROUP BY
    itt minden mező újra, mert csak így engedte a count-ot a SELECT-ben.


    szóval a fenti műx, csak a count-ok rossz eredményt hoznak. ha bárhonnan elveszem a (+)-ot, akkor meg csak olyan megbízásokat listáz, amiben minden számlatípusból van. van valakinek ötlete hogyan tudnám megcsinálni? köszönöm.

    [Szerkesztve]

Aktív témák