Új hozzászólás Aktív témák
-
tm5
tag
válasz BeeGee2115 #3632 üzenetére
Szerintem nem kell rögtön táblát léterhozni ehhez, mert akkor minden Adatok tábla módosítás (insert/update/delete) után frissítened kellene a Számlák táblát.
Bőven elég egy lekérdezés:SELECT szamla, SUM(osszeg)
FROM adatok
GROUP BY szamlaMondjuk ez negatívval nem tartalmazza azt amikor az egyik számláról mozog a pénz a másikra. Ahhoz az kellene, hogy hozz létre egy negatív sort a "from" számlához is amikor onnan átkerül pénz a másikra.
-
Apollo17hu
őstag
válasz BeeGee2115 #3634 üzenetére
Így?
SELECT szamla,
SUM(CASE WHEN osszeg > 0 then osszeg ELSE 0 END) pozitiv,
SUM(CASE WHEN osszeg < 0 then osszeg ELSE 0 END) negativ
FROM adatok
GROUP BY szamla -
Apollo17hu
őstag
válasz BeeGee2115 #3636 üzenetére
nem vagyok teljesen képben, de talán erre van szükséged:
SELECT szamla,
SUM(osszeg) - SUM(CASE WHEN tranzakcio IS NOT NULL then osszeg ELSE 0 END)
FROM adatok
GROUP BY szamla...ami - ha jól gondolom - egyenértékű ezzel (egyszerűen eldobjuk azokat a rekordokat, amelyek tranzakciót - is - jelölnek):
SELECT szamla,
SUM(osszeg)
FROM adatok
WHERE tranzakcio IS NULL
GROUP BY szamla[ Szerkesztve ]
-
Apollo17hu
őstag
válasz BeeGee2115 #3638 üzenetére
Egy mintaadatbázis jól jönne sqlfiddle-ben. Addig is ezt értettem meg a leírtakból:
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
,(SELECT Tranzakció,
SUM(Összeg) AS tranzakcio_ertek
FROM Adatok
GROUP BY Tranzakció) tran
WHERE szla.Számla = tran.Tranzakció(+)Az lenne az elve, hogy külön-külön összesítjük a "Számla" és a "Tranzakció" mezőkben lévő összegeket, és ahol a "Számla" és a "Tranzakció" egyezik, ott a kettőt kivonjuk egymásból.
-
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?
[ Szerkesztve ]
Minden (is) lehetséges! <DS218+ (6GB)>
-
Apollo17hu
őstag
válasz BeeGee2115 #3640 üzenetére
kb. úgy, ahogy az előbb leírtam: a kettőből 1-1 allekérdezést csinálsz, és számlaszám mentén összekötöd őket, ill. a számlára aggregált allekérdezéshez "gyengén" kötöd a tranzakcióra aggregált allekérdezést (LEFT JOIN, ha a pluszjeles szintaktika nem működne)
-
Apollo17hu
őstag
válasz BeeGee2115 #3642 üzenetére
- tran.tranzakcio_ertek
helyett- nvl(tran.tranzakcio_ertek, 0)
-t használj, és így nem fog "eltűnni" az egyenlegszerk.: Most olvasom, hogy közben magad is rájöttél a megoldásra.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- iPhone topik
- Raspberry Pi
- Kormányok / autós szimulátorok topicja
- BestBuy topik
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Eredeti játékok OFF topik
- Elektromos rásegítésű kerékpárok
- Minden ami hőszivattyú
- Debrecen és környéke adok-veszek-beszélgetek
- További aktív témák...
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 11 Pro 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 11 Pro 64GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude 7300 27% 13.3" FHD IPS i5-8265U 16GB DDR4, 256GB NVMe gar
- Új Philips és SanDisk USB3.0 - USB3.1 pendriveok 5000 forinttól
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen