Van két táblázatom, a köv. Struktúrával. Ugyfel {Azon, Nev, SzulEv, IrSzam, Orsz} Befiz {Azon, Datum, Osszeg} A következőt kellene lekérdeznem: Ki a legidősebb ügyfél?
A megoldásom: SELECT min(SzulEv) FROM ugyfel;
Ez a lekérdezés a jó évet adja vissza, de amikor a nevet is le akarom kérdezni, így: SELECT min(SzulEv),Nev FROM ugyfel; akkor a dátum jó, de a név az nem stimmel. Szóval, van ötletetek, hogy mi lehet a gond?
Nem két táblád van?
A baj meg az, hogy nem jó a lekérdezés.
A két oszlop között ami lekérdezel semmilyen kapcsolat nincs.
Nem tűnt fel például, hogy nem 1 (vagy néhány) darab sort kapsz vissza, hanem az összeset?
Elég sok megoldás van.
Például sorba rendezheted a sorokat.
Vagy előbb kiválasztod a minimum értéket, majd erre szűrsz a táblában.
Attól függően választanék a két megoldás közül, hogy 1 sor kell, vagy az összes egy idős.
Lehet adni olyan feltételt a where-ben, hogy rownum=1, ehhez persze order by-jal be kell állítani a sorrendet, hogy mihez képest adja vissza az elsőt.
SELECT *
FROM (SELECT *
FROM ugyfel
ORDER BY szulev)
WHERE ROWNUM = 1;
Hátránya, hogyha több is van ugyanazzal a szul évvel akkor random egyet visszad közülök.
Ha mindenki kell, aki a legrégebben született, akkor al-lekérdezéssel megoldható:
SELECT *
FROM ugyfel
WHERE szulev = (SELECT min(szulev) FROM ugyfel)
Nem kell ezt túlbonyolítani.
Ennyi az egész:
SELECT Nev
FROM Ugyfel
ORDER BY SzulEv ASC
LIMIT 1;
Példa:
"A két oszlop között ami lekérdezel semmilyen kapcsolat nincs."
Erre írtam, hogy minek kéne összekapcsolni a két táblát? Egy táblára van szükség!!!
Szerintem meg azt se érted amit kérdezel.
Ki beszélt két tábláról?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!