Hirdetés
- Brogyi: CTEK akkumulátor töltő és másolatai
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- gerner1
- Meggyi001: Áram nélkül....méltóság nélkül.....
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Lalikiraly: Mercis kalandok - Huszonnyolcadik rész - Az újrakezdés
- Lalikiraly: Macbook NEO 2
Új hozzászólás Aktív témák
-
BeeGee2115
csendes tag
válasz
Apollo17hu
#3643
üzenetére
Igen, köszönöm, nálam az IFNULL() volt a nyerő

A végeredmény pedig:SELECT
szla.Számla,
szla.szamla_ertek- IFNULL(tran.tranzakcio_ertek,0) AS Egyenleg
FROM
(SELECT Számla,
SUM(Összeg) AS szamla_ertek
FROM Adatok
GROUP BY Számla) szla
LEFT JOIN (SELECT Tranzakció,
SUM(Összeg) AS tranzakcio_ertek
FROM Adatok
GROUP BY Tranzakció) tran
ON szla.Számla = tran.Tranzakció -
BeeGee2115
csendes tag
válasz
Apollo17hu
#3641
üzenetére
Már majdnem jó!
A +os szintaktika nem működik, ezért átírtam LEFT JOIN-ra:SELECT
szla.Számla,
szla.szamla_ertek - tran.tranzakcio_ertek
FROM
(SELECT Számla,
SUM(Összeg) AS szamla_ertek
FROM Adatok
GROUP BY Számla) szla
LEFT JOIN (SELECT Tranzakció,
SUM(Összeg) AS tranzakcio_ertek
FROM Adatok
GROUP BY Tranzakció) tran
ON szla.Számla = tran.TranzakcióErre azonban azokak a számláknak, amelyekről sosem történt tranzakció, nem lesz egyenlege

-
BeeGee2115
csendes tag
válasz
BeeGee2115
#3638
üzenetére
Közben agyaltam kicsit és arra jutottam, hogy ennek a két lekérdezésnek a kivonása jelentené a megoldást:
A)
SELECT Számla,
SUM(Összeg) Egyenleg
FROM Adatok
GROUP BY Számla;
B)
SELECT Tranzakció,
SUM(Összeg) Egyenleg
FROM Adatok
WHERE Tranzakció!=''
GROUP BY Tranzakció;A-B hogyan lehetséges?
-
BeeGee2115
csendes tag
válasz
Apollo17hu
#3637
üzenetére
Kedves Apollo17hu! Azért nem hagyhatjuk ki a tranzakciókat, mert akkor hibás egyenlegeket kapunk, hiszen az egyik számláról a másikra történő átutalások kiesnének a rendszerből.
Ez már majdnem jó:
SELECT Számla,
SUM(Összeg) - SUM(CASE WHEN Tranzakció!='' then Összeg ELSE 0 END) Egyenleg
FROM Adatok
GROUP BY Számla
A probléma az hogy a tranzakció oszlopban lévő aktuális számlanevet kellene valahogy a megfelelő számlából kivonni, hiszen most csak azt vizsgáljuk, hogy üres vagy sem, de nem az értékét. Egy soron belül a tranzakció és számla oszlopok különböző számlaneveket tartalmaznak a tranzakció értelmének megfelelően. -
BeeGee2115
csendes tag
válasz
Apollo17hu
#3635
üzenetére
Köszönöm! De a probléma az, hogy ez továbbra is csak a Számla oszlop szerint fog pozitív vagy negatív értékeket listázni nekem. Én azt szeretném elérni, hogy soronként haladva megvizsgáljuk a számla és a tranzakció oszlopokat is és ha a tranzakció üres akkor semmi gond, csak hozzáadjuk az összeget a számla oszlopban lévő számlához (akár pozitív, akár negatív az összeg), ha viszont van tranzakció, akkor (a biztosan pozitív) összeget ki kell vonnunk a tranzakció oszlopban szereplő számla egyenlegéből is.
Vagy egy másfajta megközelítésben szummázzuk az összegeket a számla oszlop szerint, majd kivonunk minden összeget a tranzakció oszlop alapján. És ennek vesszük a rendezett nézetét.
A két lekérdezést külön-külön már össze is raktátok nekem, ezért ezer hála, de a végső megoldást még nem lelem.
A Jézuska megérkezett közben, Boldog Karácsonyt
-
-
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!
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...

Előre is köszönök minden tippet, segítséget!
Új hozzászólás Aktív témák
- Brogyi: CTEK akkumulátor töltő és másolatai
- One mobilszolgáltatások
- Cisco vizsgák (CCNA, CCNP, CCIE)
- exHWSW - Értünk mindenhez IS
- Huawei P10 - pisztácia nem is volt
- Google Pixel topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- TCL LCD és LED TV-k
- Vékony tokot, nagy és fényes kijelzőt kapott a Huawei Watch Fit 5 és Fit 5 Pro
- AMD Navi Radeon™ RX 7xxx sorozat
- További aktív témák...
- Dell Inspiron 5441 Snapdragon X Plus / 16GB 512SSD/ AI PC
- Iphone 11 Pro Max 64gb zöld kártyafüggetlen
- TUF A15 FA507NV 15.6" FHD IPS Ryzen 5 7535HS RTX 4060 16GB 512GB NVMe gar
- Eladó: Playstation 5 + PlayStation VR2 szinte új állapotban!
- Latitude 5520 27% 15.6" FHD IPS érintő i5-1145G7 16GB 512GB NVMe magyar vbill ujjolv IR kam gar
- LG UltraWide 35WN75CP VA Monitor! 3440x1440 / 100Hz / sRGB 99% / FreeSync
- Gamer PC-Számítógép! Felsőkategória! R7 9800X3D / RX 9070XT / 32GB DDR5 / 2TB SSD / Noctua !
- Samsung, SK Hynix 8GB / 16GB / 32GB DDR5 laptop Memoria!
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




