Új hozzászólás Aktív témák
-
Louro
őstag
válasz
dellfanboy
#4297
üzenetére
Valamilyen SQL megoldást nem támogatna a munkáltatód? Eleve 3 000 000 sorról beszélünk nagyjából. Access is elbírná, de hosszú távon lehet jobb lenne egy tartósabb megoldás.
Na meg rádobtok egy Tableau-t vagy PowerBI-t és nagyon csinos tud lenni
Az SQL, ha még nagyon új, akkor sqlzoo.net alapokra szerintem az egyik legjobb.
Access nekem a folyamatos Compact miatt volt nyűg, mert mindig nagyra hízott.
-
bpx
őstag
válasz
dellfanboy
#4129
üzenetére
Ez nem SQL, hanem PHP probléma.
$tagid, $autoid helyett $megrendelo_id, $autok_id változókat használsz a query-hez, és nem a CURDATE()-tel van baja, hanem az üres változók miatt a "(, , CURDATE())"-tel.
-
válasz
dellfanboy
#4131
üzenetére
fura. futtasd le kérlek ezt a db-ben:
describe kolcsonzes; -
válasz
dellfanboy
#4129
üzenetére
kéne az "error uzenet".
-
PumpkinSeed
addikt
válasz
dellfanboy
#2847
üzenetére
-
Apollo17hu
őstag
válasz
dellfanboy
#2759
üzenetére
Nem biztos, hogy hibás. Attól függ, mi a kérdés, amire a scriptet írod.
-
válasz
dellfanboy
#2759
üzenetére
Építsd fel újra (lépésenként) a lekérdezést és a végén meg fogod találni azt a logikai hibát, ami a nulla elemű eredményhalmazt okozza...
-
Khelben
nagyúr
válasz
dellfanboy
#2745
üzenetére
select distinct id
from tábla
where faktor=-1
and dátum between perióduskezdete and periódusvége -
martonx
veterán
válasz
dellfanboy
#2745
üzenetére
where faktor = -1 ?

-
Ispy
nagyúr
válasz
dellfanboy
#2673
üzenetére
select year(period), month(period), ügyfél_id
from tábla
group by year(period), month(period), ügyfél_id
having count(*)=1 -
bpx
őstag
válasz
dellfanboy
#2641
üzenetére
pl. február:
where
date_to is null
and trunc(date_from, 'MM') = date'2014-02-01' -
bambano
titán
válasz
dellfanboy
#2633
üzenetére
én a két dátum különbségét venném napban és az alapján válogatnék.
-
bpx
őstag
válasz
dellfanboy
#2633
üzenetére
where
extract(day from date_from) = 1
and extract(day from date_to + 1) = 1
and trunc(date_from, 'MM') = trunc(date_to, 'MM') -
Ispy
nagyúr
válasz
dellfanboy
#2631
üzenetére
Milyen SQL? Keress valami MONTH, DATEPART szerű függvényt.
-
válasz
dellfanboy
#2565
üzenetére
Bár az előzőek közül a NOT IN-es megoldás a legegyszerűbb, célszerű azért ezt kerülni. Inkább a JOIN a megfefelő erre a célra.
-
Apollo17hu
őstag
válasz
dellfanboy
#2560
üzenetére
Nem JOIN-nal szoktam kötni, de - ha jól tudom -, akkor a FROM utáni sorrend dönti el, hogy melyik a "LEFT" és melyik a "RIGHT" tábla. A LEFT JOIN és a RIGHT JOIN is "gyenge" kötés, tehát az egyik táblának vesszük az összes rekordját, és amihez párt találunk, ahhoz hozzácsapjuk a másik táblából a szükséges mezőket, ahol pedig nincs pár, az NULL-értékkel kerül feltöltésre.
Ebből következik, hogyha neked csak azok az id-k kellenek, amelyek kizárólag az egyik táblában vannak, akkor a másik táblát gyengén kell kötnöd hozzá, majd a WHERE záradékban meg kell adnod, hogy a másik táblából bekötött id-k helyett NULL-érték szerepeljen. Valahogy így:
SELECT egyik_tabla.id
FROM egyik_tabla
LEFT JOIN masik_tabla
ON egyik_tabla.id = masik_tabla.id
WHERE masik_tabla.id IS NULLMegj.: gugliba beírod, hogy sql join, és rámész a képkeresőre, meg fogsz világosodni.

-
jocomen
aktív tag
válasz
dellfanboy
#2560
üzenetére
Ha jól értem a kérdést, akkor:
SELECT oszlop1
FROM tabla
WHERE oszlop1 NOT IN (SELECT oszlop2 FROM tabla); -
Ispy
nagyúr
válasz
dellfanboy
#2560
üzenetére
soha nem használtam right joint....
-
skoda12
aktív tag
válasz
dellfanboy
#2560
üzenetére
(SELECT egyik FROM tabla
UNION
SELECT masik FROM tabla)
MINUS
(SELECT egyik FROM tabla
INTERSECT
SELECT masik FROM tabla)Joinos kerdesre: A from utani sorrend szamit.
-
rum-cajsz
őstag
válasz
dellfanboy
#2514
üzenetére
Ha a plsql a PL/SQL Developer nevű programot jelenti, akkor elég hamar találhattál volna választ a súgójában.
Ezt a témát keresd: "Updating the database"De ha sokat csinálsz ilyet, és nem csak egyszeri alkalomról van szó, akkor valószínűleg egyszerűbb lenne a text importer (Tools menü)funkcióját használni a programnak, ami CSV formában eszi meg az excel adataidat.
-
Apollo17hu
őstag
válasz
dellfanboy
#2507
üzenetére
Úgy kell csinálnod, ahogy Athlon64+ írta: betöltöd mondjuk egy "ugyfel" nevű táblába, és egyszerűen összekötöd (erősen) azzal a táblával, amiben az azonosítókat szűrni szeretnéd.
Valahogy így:
SELECT alaptabla.*
FROM alaptabla, ugyfel
WHERE alaptabla.id = ugyfel.idEz semmi mást nem csinál, mint az alaptáblából leszűri azokat a rekordokat, amelyek - azonosító alapján - szerepelnek az ugyfel táblában is.
-
Peter Kiss
őstag
válasz
dellfanboy
#2507
üzenetére
Be kell töltened egy táblába, és megfelelően join-olni.
-
Apollo17hu
őstag
válasz
dellfanboy
#2394
üzenetére
Amit 2 hsz.-szel korábban írtál, az a 3 tábla metszete. A metszetben lehet szűrni id-ra (= Melyek azok az id-k, amelyek mindhárom táblában megtalálhatóak?), ekkor mindegy, hogy a háromból melyik tábla id-jára szűrsz. Ha több id-ra akarsz szűrni, akkor az IN operátort használd!
megszámolom az oszlopban lévő értékeket de csak akkor ha az id x.
Ezt nem értem. Lehet, hogy az id mellett vannak más mezőid, amiket összegezni szeretnél? Ha így van, akkor lehet, hogy a SUM()-ra is szükséged van.
-
PumpkinSeed
addikt
válasz
dellfanboy
#2392
üzenetére
Valami kérdés? Vagy csak be szeretnéd mutatni a 3 tábla összekapcsolását?
-
bpx
őstag
válasz
dellfanboy
#2382
üzenetére
na tehát akkor:
user_tables = saját tábláid
all_tables = olyan táblák, amelyek az aktuális felhasználó számára elérhetőek (amelyek lehetnek sajátjai, vagy másé)
dba_tables = összes tábla az adatbázisbanaz utolsót viszont csak akkor tudod lekérdezni, ha kapsz megfelelő jogosultságot
-
PumpkinSeed
addikt
válasz
dellfanboy
#2377
üzenetére
Attól függ, hogy milyen sql-t használsz. Oracle-ben: select * from user_tables
-
bambano
titán
válasz
dellfanboy
#2370
üzenetére
szerintem subselect
select akarmi from tabla where vevo_id in (select id from vevo where foldrajzilagrendben);
-
Apollo17hu
őstag
válasz
dellfanboy
#2373
üzenetére
Így nehéz segíteni, még mindig nem jött át, hogy pontosan mi a problémád.
Az a gondod, hogy 1000+ soros a lekérdezésed? Mert valami olyasmit csinálsz, hogy WHERE id = 564 or id = 5688 or id = 5212 or id = 213 ...?És az az x db vevő honnan van neked? Hogy szűrted le? Vagy kaptad valahonnan egy Excel-fájlban?
-
Apollo17hu
őstag
válasz
dellfanboy
#2370
üzenetére

Ez nekem nem jött át. Hogy néz ki a lekérdezésed? LIKE / BETWEEN operátorokat ismered?
-
Apollo17hu
őstag
válasz
dellfanboy
#2369
üzenetére
írok egy selectet megvan az eredmény a plsql behoz kb 20 sort. ekkor szoktam a zöld le nyílra kattintani (ugrás az utolsó oldalra), hogy lehozza a maradékot (és itt néha megakad a 100mb miatt)
Egyrészt be lehet állítani a Developert, hogy ha lefut a lekérdezés, akkor az eredményt automatikusan pörgesse ki (nem ajánlott), másrészt ha 100 MB-nál megakad a kipörgetés, utána ha nyomsz mégegyet a zöld nyílra, akkor kipörgeti a maradékot is, és mehet az export.
A query eredmény exportálása funkciót nem használtam még.
-
Apollo17hu
őstag
válasz
dellfanboy
#2366
üzenetére
A meghaladja a 100 MB-ot nem arra vonatkozik véletlenül, hogy nem pörgette ki (fetch) az összes eredménysort? Ilyet szokott nálam is pampogni, de ha teljesen kipörgetem, akkor engedi az exportot. És nem 100 megás Excel-fájlod lesz, hanem töredéke.
Egyébként akkor kapsz ilyen 100 megás üzit, ha a sok rekord baromi sok mezőből áll. Ha csak a legfontosabb mezőket hagyod a lekérdezésedben, akkor sztem még az üzenet sem fog megjelenni.
-
Apollo17hu
őstag
válasz
dellfanboy
#2361
üzenetére
Mi nem megy az exportálásban? Ha sok az adat, akkor kicsit "gondolkodni" szokott a Developer, de nekem mindig kirakja, amit ki kell. Ha meg már Excel-ben van, akkor xlsb-ként mentsd el, és akkor kb. akkora lesz a fájlod mérete, mintha zippelted volna.
-
bambano
titán
válasz
dellfanboy
#2361
üzenetére
oracle-t nem tudom, de postgresql ugyanígy nevezi, pivot-nak, és betölthető extensionként van benne.
lehet, hogyha rákeresel ugyanerre oracle esetén, ott is lesz.szerk: most látom, ez sima aggregált cucc:
select id, sum(..) from table group by 1 order by 1; -
Sk8erPeter
nagyúr
válasz
dellfanboy
#2352
üzenetére
Megpróbálhatnál esetleg nem úgy írni, mintha rohanva csetelnél, hanem összeszedetten írnád le, mi is a felépítése a tábláknak, és mi is a konkrét probléma, mert össze-vissza használtad a példakódodban a neveket is (most akkor mit joinoltál eredetileg mivel?!), plusz azt sem írtad le, igazából mi a hibaüzenet; egyszer "oszlopnév" nevet adtál a mezőnek, egyszer "oszlop1"-et, aztán "oszlopid"-t, ember legyen a talpán, aki kiigazodik ez alapján, hogy most akkor id-kat kapcsoltál-e össze, vagy mást (is).
-
dellfanboy
őstag
válasz
dellfanboy
#2351
üzenetére
megvan a plsql-be van lekérdezés készítő a végére kellett még egy where táblanév1.oszlopid=táblanév2oszlopid
de miért??
-
bpx
őstag
válasz
dellfanboy
#2336
üzenetére
amikor futtatsz egy lekérdezést, ahhoz az adatbázis végrehajtási tervet készít, és az optimizer az összes lehetséges tervet megvizsgálja, és azokból választja ki a szerinte optimálisat
ha mondjuk így néz ki az sql (Oracle), hogy:select /*+ ordered use_hash(tabla1 tabla2) */ oszlop1, oszlop2, ... from tabla1, tabla2, tabla3 ...
akkor a /*+ ... */ közti "kommentek" valójában optimizer hintek, amivel befolyásolhatod hogy milyen terv készüljön
az ordered azt jelenti, hogy a tábláknál a join sorrendje az lesz, ahogy le van írva az sql szövegében, és nem az adatbázis dönti el, tehát a fenti példában először veszi a tabla1-et, utána a tabla2-t, majd a tabla3-at
a use_hash meg azt jelenti, hogy a tabla1-nél es tabla2-nél hash joint fog használni (míg a hint nélkül lehet, hogy nested loops join vagy merge join lenne)azt meg, hogy miért jó a fromba beágyazott select, nem tudom

sokszor meg lehet oldani anélkül is, ha viszont kell, akkor meg van sokkal olvashatóbb módszer is: with .. as ..
pl. (persze itt pont nem kell, meg az egyszerűsége miatt nincs is nagy különbség, de most ennyire telik tőlem):select * from ( select * from hr.employees where hire_date > date '2005-01-01') e2005
where e2005.salary > 15000;
with e2005 as (select * from hr.employees where hire_date > date '2005-01-01')
select * from e2005 where e2005.salary > 15000; -
Ablakos
addikt
válasz
dellfanboy
#2336
üzenetére
Egy beillesztett kód ( eseteleg sql fejlesztői környezet megnevezéssel) biztosan többet mondana annak, aki segíteni szeretne és tud is.

-
bpx
őstag
válasz
dellfanboy
#2333
üzenetére
where oszlop between to_date('2014-01-01', 'YYYY-MM-DD') and to_date('2014-02-01', 'YYYY-MM-DD')
-
Ablakos
addikt
válasz
dellfanboy
#2218
üzenetére
A distinct nem számol, hanem a mögötte álló oszlop(ok)ból egyedi értékeket képez.
select count(distinct oszlopnév ) from táblanév; egyedi értékek számossága -
bpx
őstag
válasz
dellfanboy
#2012
üzenetére
create database link B connect to user identified by pw using 'A';
select * from tabla@B; -
martonx
veterán
válasz
dellfanboy
#1973
üzenetére
ezzel nem leszel kisegítve, de az adattisztítás mindig az egyik legnagyobb szopás. Regexp-el esetleg ki lehetne szedni a fixen 4 jegyű számokat -> irányítószám.
-
Speeedfire
félisten
válasz
dellfanboy
#1911
üzenetére
Sql developert nem nagyon szeretem, inkább toad vagy plsql developer.

-
Apollo17hu
őstag
válasz
dellfanboy
#1911
üzenetére
Nekem is volt szerencsém mindkettőhöz.
Az SQL Developer-t egyetemen fél évig használtuk. Arra jó volt, hogy fogalmat kapjunk a relációs adatbázisokról, a többfelhasználós környezetről, és alap SQL utasításokat is írtunk. Sajnos nem tudom, ennél mennyivel tudhat többet a program, de azt külön hangsúlyozta a szemináriumvezetőnk, hogy azért az SQL Developerre esett a tanszék választása, mert teljesen ingyenes.
Munkám során pedig PL/SQL Developert használok, és bár a "PL" funkcionalitást szinte egyáltalán nem használom ki, sokkal profibbnak tűnik, bővebb funkcionalitással (pl. automatikus kódkiegészítések). (Ez lehet, hogy azért is van, mert 3 év alatt volt időm megismerkedni vele.) Ő ugye fizetős...
-
bpx
őstag
válasz
dellfanboy
#1900
üzenetére
"select *from tábla_xxxxxx"
igen, rosszul irtad
@ kell _ helyettselect *from tábla@aaaaaa
+ a dblink neve aaaaaa, mivel az xxxxxx az a TNS nev a mintad alapjan
-
martonx
veterán
válasz
dellfanboy
#1900
üzenetére
Ez most akkor pontosan milyen SQL is? MSSQL, Oracle, MySQL, PostgreSQL?
És jól értem, hogy első körben egy linked servert szeretnél beállítani? Vagy az már adott?
-
Speeedfire
félisten
válasz
dellfanboy
#1900
üzenetére
Hát, ha másik sémából szeretnél lekérni, akkor csak ennyi kell.
select * from masik_sema.tabla_nev
-
Peter Kiss
őstag
válasz
dellfanboy
#1795
üzenetére
Amit te keresel, azt úgy hívják, VIEW. Ha azokkal a táblákkal kellene dolgoznod, kérj egy VIEW-t. Ekkor a VIEW-hoz adnak hozzá, nem a TABLE-hoz SELECT permission-nel.
-
bambano
titán
válasz
dellfanboy
#1798
üzenetére
az milyen jó lesz, ha rájönnek, hogy az ő biztonsági előírásaik ellenére meg tudtad oldani a feladatot, és leadtad, ahelyett, hogy szólták volna, hogy akadályozva vagy.
na akkor fognak fejek hullani, sorozatban, a tied csak az első lesz, de nem az egyetlen.
-
válasz
dellfanboy
#1798
üzenetére
vazz, remélem nem nálunk dolgozol, mert különben hétfőn reggel mind a kettőtöknek egy sün lesz feldugva a végbelébe

-
válasz
dellfanboy
#1795
üzenetére
Attól még, hogy látja a táblákat, még nem szükségszerűen tud neked bármire is jogot adni (vagy publikus táblákat generálni).
-
DS39
nagyúr
válasz
dellfanboy
#1795
üzenetére
ez hogy SQL kérdés?
milyen programban kell a jogosultság egy táblához? MS SQL Server, Oracle DB?
ha nem adtak jogosultságot, akkor nem is kell az adott táblával dolgozzál, nem? -
Ispy
nagyúr
válasz
dellfanboy
#1793
üzenetére
Ezt nem is értem

-
Sk8erPeter
nagyúr
válasz
dellfanboy
#1185
üzenetére
Igazából szerintem így lenne értelme:
...
WHERE UPPER( stuff_name ) LIKE UPPER( '%lajos%' )...abban az esetben, ha az adatbázis case sensitive.
Pl. MySQL-nél alapból tök mindegy, hogy "lajos", "LAJOS" vagy "LaJoS" a tárolt név, simán az UPPER nélkül is kiadja mindegyik találatot, szóval ez case insensitive módon megtalálja az összeset - de collationnel arra is van mód, hogy ne így legyen: [link].Case sensitive esetben viszont mindkettőt jó, ha nagybetűssé teszed, és úgy veted össze, mert ellenkező esetben nem mindegy, hogy a fent felsorolt példák közül hogyan keresel rá.
Tehát ha nem mindkettőnek a nagybetűssé (vagy épp kisbetűssé) tett változatát veted össze, akkor lehet, hogy egyes találatokat kizársz az eredményekből, mert mondjuk valaki elgépelte a Lajost, és LajOst írt helyette (lásd nagy O).
A nagybetűssé tett "lajos"-ból "LAJOS" lesz, a nagybetűssé tett "LajOs"-ból is "LAJOS" lesz, tehát így már a két karaktersorozat egyezni fog ebben az 5 karakterben.
A Te fenti keresésed lehetővé teszi azt is, hogy a "LajOska" nevet is megtalálja.Remélem így valamennyire érthető.
-
ArchElf
addikt
válasz
dellfanboy
#1185
üzenetére
Nem a where 1=1 -et kell törölni, hanem az 1=1 AND-et
SELECT *
FROM táblanév
WHERE upper(g.NAME) LIKE '%lajos%';AE
-
bpx
őstag
válasz
dellfanboy
#794
üzenetére
az nem parancs, hanem hint
select /*+ USE_HASH(t1 t2) */ t1.oszlop1, t2.oszlop2, ... from sema1.tabla1 t1, sema2.tabla2 t2
where t1.id = t2.id;Oracle-ben az optimalizálót úgynevezett "hint"-ekkel lehet befolyásolni, hogy milyen végrehajtási tervet készítsen
a fenti példában mindenképp HASH JOIN-t fog használni a többi lehetőség (NESTED LOOPS, MERGE JOIN) helyett
az is látszik ugye, hogy kommentben van, nem parancs - ha hülyeséget írsz bele, egyszerűen figyelmen kívül hagyja
rengeteg ilyen hint van, olyan is, ami dokumentálva sincsnem jó gyakorlat eleve ezekkel megírni egy utasítást, alapvetően ezek nélkül lenne jó megoldani mindent
én Oracle DBA-ként dolgozom, amikor valamelyik cégtől szólnak a fejlesztők, hogy lassú valamelyik SQL, akkor szoktuk hangolni, és hinteket használni ha szükséges
Új hozzászólás Aktív témák
- MWC 2026: Kezünkben a minden tekintetben európai okostelefon
- Okos Otthon / Smart Home
- Milyen TV-t vegyek?
- Ilyen olcsó sem volt még egy Apple notebook
- Fotók, videók mobillal
- Bundle topik
- Motoros topic
- Hosszú premier előzetest kapott az Arknights: Endfield
- A fociról könnyedén, egy baráti társaságban
- MWC 2026: csápolt a robot, majd dobott egy hátraszaltót
- További aktív témák...
- !AKCIÓ+GARI! GAMER PC Intel Core i5-14400F/ASUS TUF Gaming B760M/RTX 4070 12GB/32 GB DDR5 5200 MHz
- Új állapotú Samsung Galaxy S23 Ultra garanciával
- Kingston FURY Beast 16GB (2x8GB) DDR4-3600 CL17
- Sapphire NITRO+ RX 6700 XT (192bit 12gb)
- Micron 32GB modulok egyben (1 x 32GB) 3200Mhz - több db elérhető!
- Macbook Air M2 15" 8GB 256GB 100%
- Samsung Galaxy A56 8/256GB - Kártyafüggetlen, Fehér, ÚJSZERŰ - 1 Év Garanciával
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol garanciával hibátlan működéssel
- ÚJ Lenovo ThinkPad T16 Gen 4 - 16" WUXGA - Ultra 7 255U - 32GB - 1TB SSD - Win11 - 3 év garancia
- LicencAruhaz.hu OLCSÓ, LEGÁLIS SZOFTVEREK AZONNAL - Windows - Office - Win Server - ÖRÖK GARANCIÁVAL
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





