Hirdetés

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

  • BeeGee2115

    csendes tag

    Sziasztok!

    Adott egy Synology DS, amelyen phpMyAdmin és mögötte MariaDB10 leledzik.
    Ebben létrehoztam egy adatbázist, amiben pedig egy csodaszép adattáblát több ezer sorral. Gyönyörűen mennek a lekérdezések, és bár kezdőnek számítok az SQL-ben, egész hamar kiismertem magam ebben a világban. Azonban most szükségem lenne a ti tudásotokra! :R

    Az alapok a problémához:
    Adatok tábla tartalmazza a következő oszlopokat (többek között):
    ..., Számla (egy számla neve varchar 255 NOT NULL), Összeg (a pénzösszeg double NOT NULL), Tranzakció (egy számla neve varchar 255), ...

    Létezik nagyjából 12 féle különböző számla. (Készpénz, Bankkártya... stb).

    Az adatbázis soraiban a következő szabályok élnek:
    - A számla oszlop sohasem lehet üres
    - Az összeg lehet pozitív vagy negatív (bevétel vagy kiadás)
    - A tranzakció oszlopban csak akkor szerepel számlanév, ha egyik számláról mozgatunk át összeget a másikra, de ebben az esetben az összeg csak pozitív lehet (mert a mozgatás iránya kötött: Tranzakció -> Számla)

    Szeretnék egy lekérdezést/nézetet/másik táblát (tökmindegy), ahol az első oszlopban a lehetséges Számla nevek szerepelnek, majd a következő oszlopban az egyenlegek, amik ezzel az agyafúrt logikával számolódnak.

    Magamtól odáig jutottam, hogy SELECT DISTINCT-el létrehoztam egy `Szamlak` táblát és abban egy Számla és egy Egyenleg oszlopot, ahol az Egyenleget így UPDATE-elem:

    UPDATE `Szamlak` SET `Szamlak`.`Egyenleg` = (SELECT SUM(`Adatok`.`Összeg`) FROM `Adatok` WHERE `Adatok`.`Számla` = `Szamlak`.`Számla`) - (SELECT SUM(`Adatok`.`Összeg`) FROM `Adatok` WHERE `Adatok`.`Tranzakció` = `Szamlak`.`Számla`);

    Ez már majdnem jó, de azoknál a számlaneveknél, ahol szóköz van, egyszerűen nem számol semmit, az érték 0 marad... :W

    Előre is köszönök minden tippet, segítséget!

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