Hirdetés
- Picit gazdaságosabb és halkabb lett a PlayStation 5 Pro legfrissebb verziója
- Dollármilliárdokért csábított el Zuckerberg egy kínai Manust
- Új versenyző áll rajtvonalhoz a tápok világában
- Tiltott témává tenné Kína az öngyilkosságot az AI számára
- Hálózati sebességre gyúrt a Minisforum új mini-munkaállomása
Új hozzászólás Aktív témák
-
Agostino
addikt
válasz
Apollo17hu
#2399
üzenetére
üdv
azért akarom, mert össze kell fésülnöm, nincs mese : ))) mindegy hogyan, az union is oké nekem rá is nézek mindjárt. a táblám nem csak három oszlopot tartalmaz, hanem:
januar:
20 0 G 1 x
20 0 M 1 xfebuar
20 0 G 1 1az első oszlop az azonosító id. e mentén szeretném szépen egymás mellé sorjázni őket. ami ugye részben sikerült is eddig.
-
Apollo17hu
őstag
válasz
Agostino
#2398
üzenetére
Miért akarod összefésülni?
Azért nem tudod megcsinálni, mert januárban két teljesen azonos rekordod van (1, alma, kamra), tehát nincs egyedi kulcs hozzájuk. Neked kellene valamilyen szempont (mező) alapján megmondani, hogy a két rekord közül melyikhez kösse hozzá februárt, de nincs ilyen mező.Úgy nem jó, hogy UNION ALL-ozod a két táblát, és kiegészíted a létrejött táblát egy hónap oszloppal?
SELECT 'január' AS hónap, id, gyümi, hely
FROM január
UNION ALL
SELECT 'február' AS hónap, id, gyümi, hely
FROM február(Ékezeteket természtesen nem kellene, de talán érthető, hogy gondoltam.)
szerk.: Amúgy biztosan jó a januári táblád, hogy duplikálva van egy rekord?
-
Agostino
addikt
sziasztok
kettő táblát szeretnék összefésülni. nagyon kezdő vagyok sql szinten, de rá vagyok kényszerítve, ezért ki kell találnom mi a gond. van két tábla:
januar:
id gyümi hely
1 alma kamra
1 alma kamra
2 dinnye padlas
3 körte pincefebruar
id gyümi hely
1 alma pince
2 dinnye padlas
3 körte kamraannyit szeretnék, hogy a kettőt táblát az id oszlop mentén szépen egymás mellé rendezze.
ezzel a megoldással sikerült is:
select *
from januar, februar
where januar.id=februar.idviszont csak fél siker, mert ezt kaptam:
1 alma kamra 1 alma pince
1 alma kamra 1 alma pince
2 dinnye padlas 2 dinnye padlas
3 körte pince 3 körte kamranekem viszont az alábbi forma kellene, mert a fenti becsapós. olyan, mint február is kettő almám lenne.
1 alma kamra 1 alma pince
1 alma kamra null null null
2 dinnye padlas 2 dinnye padlas
3 körte pince 3 körte kamraezt elvileg a left join tudja, de valamiért ugyan azt kapom, mint az első eredmény. ezzel próbáltam:
select *
from januar left join februar
on januar.id = februar.ida fenti példa gyermeteg nagyon, sorry : ))
-
jocomen
aktív tag
válasz
Apollo17hu
#2395
üzenetére
Első ránézésre nekem is az ugrott be, h ha 1 id-ra keres, akkor a count értéke 1 lesz, de mégsem. Mert ha 1-sok kapcsolat van, pl számlaszám - számlatétel, és egy számlaszámhoz több tétel tartozik, akkor a számlatétel táblában megszámolva az 1 id-hoz tartozó rekordok számát, 1-nél több sort is találhat.
... ha jól értem a kérdést.Vagyis ha a számlaszám táblában szűr, akkor 1-et fog kapni minden id-ra (nyilván), de a számlatételben több sor is tartozhat 1 id-hoz, ami itt külső kulcs.
-
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.
-
dellfanboy
őstag
jajj az lemaradt,
bocsánat
szóval összekötők 3 táblát egy id-val ami ugyanaz
a kérdésem az hogy le szűrhetek-e/le lehet-e szűrni úgy hogy az id-t amit összekötők abból a végén kiválasztok pl.1 darabot csak, vagy 21-etmegszámolom az oszlopban lévő értékeket de csak akkor ha az id x.
-
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?
-
dellfanboy
őstag
select count(table.oszlop) from table1,table2,table3
where feltétel1
and table 1id=table 2id
and feltétel2
and tábla2id=tábla3id
and feltétel3
and tábla3id =xxxxxx -
válasz
Apollo17hu
#2387
üzenetére
zseniális 
kösz mindenkinek. -
Petya25
őstag
MS SQL 2008-on valahogy meg lehet oldani hogy egy job lefutási értesítésébe beletegyek valahogy egy select eredményt?
-
martonx
veterán
válasz
Apollo17hu
#2387
üzenetére
Ez egy fokkal szebb megoldás az általam javasoltnál

-
martonx
veterán
válasz
bambano
#2385
üzenetére
A sorokat össze tudod húzni persze. Mondjuk minden sornak te adsz egy növekvő azonosítót (MSSQL-ben ez a RANK), és ez az azonosító alapján joinolod össze a táblát saját magával eggyel elcsúsztatva egymáshoz képest.
Ezután a dátumok kivonása már gyerekjáték, azt meg nem írtad, hogy hogy akarod súlyozni a végeredményt, de szerintem minden adott a feladatod megoldásához. -
van egy táblám, egy integer azonosító mezővel meg egy dátummal. az azonosító mező nem sorfolytonos. sql-lel ki lehetne számolni az egymás utáni rekordok dátum-mezőinek különbsége összegét?
vagy mindenképpen programot kell rá írni?példa:
id | date
------+----------------------------
8222 | 2014-05-09 01:20:46.055036
8226 | 2014-05-09 01:20:50.551429
8230 | 2014-05-09 01:21:12.83294
8231 | 2014-05-09 01:21:13.20112
8234 | 2014-05-09 01:22:05.962763tehát kellene a 8234-hez tartozó dátum - a 8231-hez tartozó dátum különbsége, majd a 8231 dátuma-8230 dátuma, majd a 8230-8226 stb. és ezen differenciák összege.
ugyanezt súlyosbítva azzal, hogy a különbségeket különböző súllyal kellene figyelembe venni?
kösz a tippeket -
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
-
dellfanboy
őstag
all tables volt a megoldás amit köszönök, és sorry ha nem egyértelműen fogalmaztam.
tehát arra voltam kiváncsi hogy van egy db amibe van x tábla ebből nekem olvasási jogosultságom kevesebb mint x-hez van. és azt akarta megtudni hogy még miylen táblák/adatok érhetőek el ebben a db-ben. -
Ablakos
addikt
válasz
PumpkinSeed
#2380
üzenetére
Nem is ezt írta a kolléga.
Azt írta melyikeket láthatja. A user_tables nem jó. -
bpx
őstag
válasz
PumpkinSeed
#2378
üzenetére
all_tables
a user_tables csak a saját táblákat mutatja -
PumpkinSeed
addikt
válasz
dellfanboy
#2377
üzenetére
Attól függ, hogy milyen sql-t használsz. Oracle-ben: select * from user_tables
-
-
válasz
dellfanboy
#2370
üzenetére
szerintem subselect
select akarmi from tabla where vevo_id in (select id from vevo where foldrajzilagrendben);
-
Fundiego
tag
SQL ORACLE PROGRAMOZÁS kb 20 perces feladat annak aki ért hozzá, (én nem
)
keresem azt aki segítene megcsinálni a házifeladatomat, 4 db rövid feladat , 3000-5000 ft-ot adok a szerencsésnek -
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?
-
dellfanboy
őstag
válasz
Apollo17hu
#2372
üzenetére
nem túl bonyolult a selectem
az id-k ügyfél id-k és az közös bennük, hogy földrajzilag egy területen vannak. és lekérdezés többi oszlopában pedig az szerepel, hogy mikor mit vásároltak tőlünk, kitől stb..és arra vagyok kiváncsi hogy pl. ezen földrajzi területen élők mit vásároltak tőlünk, mikor (hó elején végén) stb.
az id-val az a gondom, hogy van olyan hogy az egyik id 6 jegyű másik 8..
like, bettwent ismerem de itt nem tudom hogy kellene alkalmaznom amikor én konkrétan arra az x db vevőre vagyok kiváncsi..
-
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.
-
dellfanboy
őstag
illettve arra van ötletetk, hogyha a scriptembe 1000-nél több id-t szeretnék lekérdezni mit tegyek?
mert a selectem nem fut le mert 1000sornál több.. (azon kívűl hogy szétbontom x.* 990-re -
dellfanboy
őstag
válasz
Apollo17hu
#2368
üzenetére
igen nem pörgeti ki az összes eredményt hanem megáll 100mb-nél
amúgy jó hogy képbe jött ez a kérdés szakmai szemmel mi a profibb megoldás? í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)
viszont van ugye a query eredmény exportálása viszont itt olyan elbaszott formátumok vannak, html, csv, xl (pl miért nincs xlsx? hogy annyira nem szoktam használni.
ráadásul a exportálás nálam ált több időbe tart mintha előtte lepörgetem a végére és onnan copy xls...
köszi
nemtudom lehet erre vmi tuti makrót írni, hogy xlsx-be exportáljak ki mindent? -
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.
-
dellfanboy
őstag
válasz
Apollo17hu
#2363
üzenetére
nemtudom a plsql kiiírja hogy a lekérdezett adattábla mérete meghaladja a 100mb-t és nem rakja ki...(jobb gomb save to xlsx
-
válasz
Apollo17hu
#2363
üzenetére
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.
XSLX fájlt nem éri meg zippelni, ugyanis az valójában egy ZIP fájl, amibe főleg xml fájlok vannak belecsomagolva. Az xslb azért jobb, mert eleve bináris formában tárolja az adatot, nem xml fájlokban tele felesleges sallangokkal. [link] -
-
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.
-
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; -
dellfanboy
őstag
sziasztok
van egy ilyen problémám van 2 oszlopom (id, érték,1 id-hoz több érték is tartozhat.
oszlop 1így néz ki
id1 érték: 5
id1 érték: 6
id1 érték: -4
id2 érték:-5
id2 érték 0
id3 érték: 55 stb.ezt szeretném látni
id1 érték:7
id2 érték:-5
id3 érték 55
xls-ben ez tök jó lenne pivotba kiforgatnám, de olyan sok az adat, hogy ki se tudom exportálni mert túl nagy az xls. jut eszembe van arra vmi mód hogy a plsql-be 100mb-nál nagyobb xls-eket tudjak kiforgatni?így néz ki a selectem:
select sum(érték), count(distinct id) from tábla
where id2 ='xx'
and period= '201403'vmi nem jó, mert kiszedtem egy id-t és csak arra rákerestem milyen értékek vannak az eredmény 55 lett míg ha totálba nézem ehhez az id-hez csak egy sokkal kevesebb érték tartozik..
-
jocomen
aktív tag
válasz
Sk8erPeter
#2359
üzenetére
Igen, ezt kerestem, köszi.
-
Sk8erPeter
nagyúr
válasz
jocomen
#2358
üzenetére
Első felére: phpMyAdminban is összeállíthatsz query-ket.
"Több adat (rekord) bevitele megoldható 1 utasításban? És az hogy néz ki?"
Úgy érted, egyazon táblába?
Például így érted?
INSERT INTO `táblád_neve` (`egyik_mezo`, `masik_mezo`, `harmadik_mezo`)
VALUES
(1, 'masodik_adat', 'harmadik_adat'),
(2, 'masodik_adat', 'harmadik_adat'),
(3, 'masodik_adat', 'harmadik_adat'); -
jocomen
aktív tag
Hali, gyorssegély kéne.
Xampp - mysql-ben van adatbevitelhez ablaknézet? Ha igen, hol?
Ha nincs, akkor egy sql insert-into utasítás is megteszi (olyan rég csináltam már, h elfelejtettem a syntaxist ).Szerk: közbe rájöttem (kapcsos zérójel volt a hiba).
Még annyit: Több adat (rekord) bevitele megoldható 1 utasításban? És az hogy néz ki? -
dellfanboy
őstag
válasz
Sk8erPeter
#2354
üzenetére
igen igazad van mostanság kicsit szétszórtvagoyk.... és ne haragudjatok, és köszi az infókat
-
Sk8erPeter
nagyúr
válasz
FireFox1996
#2355
üzenetére
"De írjatok csak nyugodtan olyan kód sorokat, amiben felesleges sorok/részek vannak"
Fárasztó vagy nagyon, remélem, tudod...
De a szavak értelmetlen kiforgatása legalább megy. 
Sztem is fejezzük be, eddig is értelmetlen volt.
-
FireFox1996
addikt
válasz
Sk8erPeter
#2353
üzenetére
Amikor írtam azt a példát, ott volt a példa elején, hogy "más példát mondok:" ami nekem annyit jelentett, hogy kicsit más témáról szól a példa...
"szerintem az felesleges... még 1 értékelést kell végezni az sql servernek...": valóban felesleges, és valóban még 1 értékelés kell neki, és valóban nem számít. De írjatok csak nyugodtan olyan kód sorokat, amiben felesleges sorok/részek vannak
Szerintem is zárjuk le a témát!

-
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).
-
Sk8erPeter
nagyúr
válasz
FireFox1996
#2347
üzenetére
Ne szívassál már ilyen teljesen elvetemült példákkal.
Hogy jön ez ide? Semmi köze nem volt ahhoz, hogy ott volt egy WHERE 1=1 feltétel, ami lényegében SEMENNYI overheadet nem jelent. Erről beszéltünk. Nem másról (amit te említettél). 
Körülbelül a példádnak annyi köze volt ahhoz, amiről eredetileg szó volt, mintha azt mondtad volna, hogy nem illik SELECT *-ot használni, mert tök felesleges mezőket is lekérsz. Az állítás önmagában teljes mértékben igaz, csak köze nincs a témához, amiről szó van.
Szóval ne keverjük a szezont a fazonnal, de egyébként is szerintem kimerült a téma, mert alapvetően egyetértünk abban, hogy ne legyen a kódban olyan, aminek nem kell ott lennie, csak az eredeti felvetésed - "szerintem az felesleges... még 1 értékelést kell végezni az sql servernek..." - volt kicsit félrevezető (mintha jelentene bármit is az az 1 értékelés).
Tulajdonképpen most csak rágunk egy gumicsontot, de semmi hasznos nem sül ki belőle.

-
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??
-
dellfanboy
őstag
miért nem fut le szerintetek a scriptem tök egyszerű
tálbanév1.oszlopnév, táblanév1.oszlopnév2 táblanév2.oszlop1
from tábla1
inner join
tábla2
on tábla1.oszlopnév=táblanév2.oszlop1(táblanevem így néz ki xx.táblanév_2014 és yy.táblanév_2013 lehet a táblanév bekavar?van benne pont? az id amivel összekötőm a két táblát egyik táblában id másikban ügyfél id...
a lényeg, hogy az id kösse őket egyik táblából jöjjön az üf adat a másikból meg a szolgáltatás
plsql-t használok -
Apollo17hu
őstag
válasz
FireFox1996
#2349
üzenetére
nem kötekedés akart lenni, nem tanultam a dolgot ilyen mélységben
kösz a választ
-
FireFox1996
addikt
válasz
Apollo17hu
#2348
üzenetére
Az a fordító programnak a dolga, és más, mint ami értékelődik a futás közben

kötekedsz

Egy true feltétel van ott, valóban nem hat az utasítás végrehajtási tervébe, mert elég okosak az sql serverek

-
Apollo17hu
őstag
válasz
FireFox1996
#2347
üzenetére
Ha már ilyen mértékű optimalizálásról esett szó, azt nem tudod véletlenül, hogy a kommentezések (nem a hintek, hanem a normál kommentek) lassítanak-e bármit a futási időn?
-
FireFox1996
addikt
válasz
Sk8erPeter
#2346
üzenetére
Abban az esetben hasznos, ha dinamikus where feltételekkel dolgozik a query.
Más esetben melőzni kell az ilyeneket
mondok más példát: egy rekordban van egy blob típusú mező, de nem használják/nem töltik (ezt mondják neked a felhasználók)... És a kódod sem használja azt a mezőt, de még is lekéred a serverről a clientre (tipikus "select mezők1, mező2.. form" helyett "select * from" ...).
Téged nem zavar, mert azt mondták neked, hogy nem használják... Tehát bent hagyod a lekérdezésben...
Később egyszer vki kitöltötte a mezőt, és jó nagy lett a rekordod mérete, és ha a programod futásközben többször kéri le a rekordot, növeli az adatforgalmat, elfogy a serveren/clienten rendelkezésre álló memória... egyszer csak leáll az egész, mert nincs elég memória a gépen...Tehát ha vki tőlem kér tanácsot, akkor: ami felesleges kód, akkor ne írjuk oda!
-
Sk8erPeter
nagyúr
válasz
FireFox1996
#2345
üzenetére
Ez az a kategória, amire még az elcsépelt "sok kicsi sokra megy"-mondást se lehet ráhúzni, annyira jelentéktelen a különbség.
Az tény, hogy felesleges, de lényegében nem számít, max. ránézésre tűnik "szemetesebbnek" a kód, bár van olyan szempont is, amit Apollo17hu említett. -
FireFox1996
addikt
válasz
Sk8erPeter
#2344
üzenetére
sok kicsi sokra megy

Programozás szempontból a felesleges sort/értékelést ki kell hagyni... -
Sk8erPeter
nagyúr
válasz
FireFox1996
#2342
üzenetére
"szerintem az felesleges... még 1 értékelést kell végezni az sql servernek..."
Tyűha, biztos HATALMAS overheadet jelent az adatbázisszervernek az 1-nek az 1-gyel való összehasonlítása...
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Apollo17hu
őstag
válasz
sztanozs
#2341
üzenetére
Nem kell bele.
Automatikus szövegkiegészítést és programkód-rendezőt (beautifier) használok: [w] + [space] lenyomására a "WHERE 1 = 1 AND" karaktersorozatot kapom. Az "1 = 1" miatt a beautifier a következő sorba rendezi az AND operátort és az azt követő feltételt, így ha ki kell kommenteznem, nem kell azzal bajlódnom, hogy a WHERE -rel egy sorban van, így az egész sort kommentezhetem duplakötőjellel.
-
válasz
Apollo17hu
#2340
üzenetére
Miért kell a where eleje?
1 = 1 AND ... -
Apollo17hu
őstag
válasz
Roley_05
#2339
üzenetére
Analitikus függvényekkel (LAG, LEAD) lehetne megoldani, de szerintem neked egyszerűbb, ha fogod a táblád, és hónap mentén visszakötöd önmagába.
Feltételezve, hogy számként tárolod a hónapot, ezt talán le tudod futtatni:
SELECT t1.honap
,t1.ertek
,t2.ertek AS korabbi_ertek
FROM tabla AS t1
,tabla AS t2
WHERE 1 = 1
AND t1.honap = t2.honap(+) + 1 -
Roley_05
csendes tag
Sziasztok!
Kezdő sql felhasználó vagyok, az alábbi kérdéssel fordulok hozzátok
Adott egy tábla, benne pl az alábbi adatok
hónap érték
201402 1,1
201403 3,6
201404 2,4a cél az lenne, hogy a adott hónaphoz hozzá tudjam rendelni egy új oszlopban a korábbi hónap értékét, az alábbi módon
hónap érték érték-1hónap
201402 1,1 3,6
201403 3,6 2,4
201404 2,4Van erre vmi egyszerű megoldás, trükk. Bármi segítséget szívesen veszek.
üdv,R
-
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.

-
dellfanboy
őstag
van egy sql-em amit az egyik tapasztalt kollégám adott
így épül fel:
select itt néhány oszlopot szummáz amikor teljesen a feltétel sum(case when...
utána jön a from majd ami számomra teljesen új: újabb select ordered use hash oszlopnevek itt szintén szummázunk pár oszlopot
megint egy from táblaneveke és a where feltételek
és a végén group by-olunkén kezdő vagyok sql téren (suliba nem is tanultam csak autodidakta módon internetről) de tudnátok segíteni miért jók az ilyen select a selectbe lekérdezések?
egyáltalán az use hash micsoda?létrehoz egy hash táblát? de akkor miért nem create-el keződdik? -
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')
-
dellfanboy
őstag
egy olyan kérdésem lenne, hogy van egy oszlopom ami datetime néven fut yyyy-mm-dd óóra:perc:mp
pontosan milyen selectet kellene írnom pl/sql-be hogy megkapjam a 2014jan1-2014feb1 közötti értékeket? sokszor kopiztam már ki a eredményből a korrekt értékeket de sehogy se akar lefutni... -
zsambek
aktív tag
válasz
Apollo17hu
#2331
üzenetére
Tehát az egyenlőnek nem kell ott lennie, csak a NOT IN-nak.

Köszönöm
zsambek` -
zsambek
aktív tag
válasz
Apollo17hu
#2329
üzenetére
Szia,
A lekérdezéstervezővel, ahogy az iskolában tanították.
Az = a probléma?zsambek`
-
zsambek
aktív tag
Sziasztok,
Microsoft Access 2010-vel csinálok emelt szintű érettségit, és a Not In függvényt valahogy nem tudom összehozni. 2011. május emeltszint, adatbáziskezelés, 7. feladat
A megoldásban így szerepel:
"SELECT DISTINCT tag.nev
FROM tag, par, tanc
WHERE par.noid=tag.id AND
par.tancid=tanc.id AND
tanc.datum=#8/4/2001# AND
tag.id NOT IN
(SELECT noid
FROM tag, par, tanc
WHERE par.ferfiid=tag.id AND
par.tancid=tanc.id AND
tanc.datum=#8/4/2001# AND
tag.nev="Kardos Norbert");"Viszont nekem valamiért így jön ki. És szintaktikai hibát dob ki a Not In-re

SELECT tanc.datum, par.noid
FROM (tanc INNER JOIN par ON tanc.id = par.tancid) INNER JOIN tag ON par.noid = tag.id
WHERE (((tanc.datum)=#8/4/2011#) AND ((par.noid)= NOT IN(SELECT DISTINCT par.noid
FROM (par INNER JOIN tanc ON par.tancid = tanc.id) INNER JOIN tag ON par.ferfiid = tag.id
WHERE (((tanc.datum)=#8/4/2001#) AND ((tag.nev)="Kardos Norbert")))
));Az első kérdésem az, hogy nekem miért INNER JOIN, meg ilyen szövegek vannak az Accessemben, a másik pedig, hogy mi rossz a lekérdezésemben a Not In-vel?
Válaszaitokat előre is köszönöm,
zsambek` -
Jagerszki
csendes tag
válasz
Sk8erPeter
#2321
üzenetére
Üdv!
Oké, még csak most ismerkedek ezzel az egésszel.
( Én még dBase-t tanultam 25 éve
)Szóval akkor az eredeti kérdés: te hogyan csinálnád?
( Nem kell gyorsnak lenni-e és nem kell ellenőrizni és csak egy alkalommal kell csinálni. ) -
Sk8erPeter
nagyúr
válasz
Jagerszki
#2322
üzenetére
https://dev.mysql.com/doc/refman/5.7/en/mysql-for-excel-install.html
"To install, download and execute the MySQL Installer. Select the MySQL for Excel product and then proceed with the installation. See the MySQL Installer manual for additional details."
-
Sk8erPeter
nagyúr
válasz
Jagerszki
#2319
üzenetére
Csak a phpMyAdminból lehetett kitalálni, hogy MySQL-t használsz (nem mindegy, hogy milyen SQL-implementáció).

"Létre kell hozni előtte egy megfelelő szerkezetű SQL adatbázist"
Jaja."vagy simán felismeri a szabályokat a phpMyAdmin?"
Nincsenek "szabályok", úgyhogy nincs mit felismerni.
Viszont amit Ablakos linkelt az imént, az igen jónak tűnik. Ez már próbálja is detektálni az egyes mezők típusát.
-
Ablakos
addikt
válasz
Jagerszki
#2319
üzenetére
Ha mysql a cél DB, akkor ingyenes excel kieggel szolgál az Oracle. Tekintsd meg!
-
Jagerszki
csendes tag
Üdv!
Csak most ismerkedek az SQL-l ezért szeretném a segítségeteket kérni.
Egy egyszerű excel táblát kellene sql adatbázissá konvertálnom.Egyszerűen a phpMyAdmin - import - file kiválasztása menüjét használtam volna, de csak szép hosszú eror-t kaptam. Próbáltam CSV formátumot is de ugyan az.
Ti hogyan vinnétek át egy EXCEL táblát SQL adatbázisba? Sima egyoldalas és nem kell szűrni mert eleve van egyedi azonosító mező az EXCEL táblában. Létre kell hozni előtte egy megfelelő szerkezetű SQL adatbázist vagy simán felismeri a szabályokat a phpMyAdmin?
-
jocomen
aktív tag
válasz
Apollo17hu
#2316
üzenetére
Igazad van, az utolsó sor elejére AND helyett OR kell (pedig teszteltem olyan adattal is, csak benéztem).
-
jocomen
aktív tag
válasz
nova001
#2310
üzenetére
Lehet van szebb kód is, de nálam ezt működik:
SELECT szszám
FROM foglalt
WHERE szszám NOT IN (SELECT szszám
FROM foglalt
WHERE date() BETWEEN tól AND ig
AND date()+1 BETWEEN tól AND ig);Jó lenne ha végre kihalnának, vagy nyugdíjba mennének azok a tanárok, akik össze-vissza rövidítenek, és két táblában máshogy hívják ugyanazt a kulcsot.

Véletlenül nem GD/Számalkba jársz, és egy szőke nő tanítja az adatbázist? -
jocomen
aktív tag
válasz
chabeee
#2312
üzenetére
Felviheted a kliens által bevitt szavakat egyből az adatbázisba, de tartalomszűrést, ellenőrzést azért csinálnék. Pl védett karaktert (!;<>{ }[ ]...), parancsot ne vihessen be, illetve ne rendelhessen meg olyasmit, ami nem szerepel a kínálatodban. Pl. ne lehessen búvártanfolyamra jelentkezni egy nyelviskolában.
Rollback az a tranzakciókhoz kell. Ha egy utasítás-csokrot csak abban az esetben akarsz lefuttatni, ha annak minden utasítása végrehajtható. Ellenkező esetben rollback transaction, azaz visszaállítja az eredeti állapotot (pl banki számla-műveletek).
-
Apollo17hu
őstag
válasz
nova001
#2310
üzenetére
Ne INNER JOIN-t használj, mert az a [szoba] és a [foglalt] táblák metszetét adja, tehát pont hogy a foglalt szobák listáját kapod. Neked olyan szobák kellenek, amelyek (1) vagy nincsenek benne egyáltalán a [foglalt] táblában, (2) vagy benne vannak, de nem a kiválasztott két éjszakára lefoglalva.
Kezdésnek LEFT JOIN-nal kösd a [foglalt] táblát, ezután pedig a kapott listát szűrd le (1) és (2) szerint.
-
chabeee
aktív tag
válasz
PumpkinSeed
#2311
üzenetére
oh ezt nem tudtam, mysql-t használok
megnézem miket lehet velük ügyködni, köszi -
nova001
senior tag
hali
lenne acces dokum amibe a következő lekérdezés kellene ami nem megy ?
[link]
melyik szoba szabad mától 2 éjszakára ?valaki tudna segiteni ?
-
chabeee
aktív tag
válasz
PumpkinSeed
#2304
üzenetére
Javaban csináltam, rájöttem hogy kell szépen.
Az a lényeg, hogy van három táblám, és azokhoz akartam adatokat szúrni/módosítani ha a kliens úgy akarja. Igazából az volt a probléma, hogy nem egyből töltöttem fel az adatokat, hanem, megvártam amíg a kliens kilép és redekraráétattam a táblákat, a listából feltöltöttem az elemeket. De ez így nagyon verzió nullás, tehát okosabban egyből a hozzáadás pillanatában kell beszúrni az adatbázisba is. Így már gyorsabb lett. -
-
-
spyspyspy
csendes tag
Sziasztok
Zoho, Trackvia, Quickbase, Blist, stb. online adatbaziskezelokkel kapcsolatban keresek forumot de sehol semmi. Valakinek tapasztalata? Otlete?
Nekilatnek osszerakni minivallalkozasunk életét amihez adatbazis kell es gondoltam nem akarok Access-t. Online kene. Nem is kell bonyolult rendszer.
Koszonom -
PumpkinSeed
addikt
válasz
chabeee
#2301
üzenetére
(#2303) chabeee
Nem nagyon értem a mechanizmust. Illetve miben használod, PHP? Külön lekérdezésekben kéred le, vagy egy lekérdezéssel táblák összekapcsolásával? A lekért adatok közül mindben végzel módosítást, vagy csak egy adott részében? Felesleges mindig DROP-olni a táblát, több okból is. Főleg ha utána nem üríted a recycle_bin-t. Meg lehet valósítan persze, de nagyon homályosan írtad le.
Szerintem az valahogy úgy nézne ki, hogy ha csak bizonyos sorokat változtatsz akkor valami alapján kiszelektálod őket a lekérdezésben, majd egy változóban letárolod azt, amit változtattál rajta és egy UPDATE-el visszatöltöd. Gondolom a privát kulcs alatt az elsődleges kulcsra gondoltál, ha a táblában nincs definiálva elsődleges kulcs kényszer akkor nincs akkor gond, ha van egy olyan oszlopod ami elsődleges kulcshoz hasonló értem ezalatt, hogy nincs NULL érték illetve nem azonosak. Ilyen sor nélkül felesleges is megtervezni egy táblát mert anomáliák lépnek fel. Ha ez megvan akkor tudod teljesíteni azt, hogy a SELECT-ben a változtatásra szoruló sorokat választod ki.
-
chabeee
aktív tag
válasz
PumpkinSeed
#2302
üzenetére
igen ezekkel tisztában vagyok
-
-
chabeee
aktív tag
Sziasztok,
Van egy adatbázisom, és abban van 3 olyan táblám, aminek az adatait egy programban felhasználom, ezeket lekérem egy listába,(minden táblát külön listába), ezt követően ehhez a listához hozzádobálok még pár adatot, és azt írom vissza az adatbázisba, oly módon, hogy elsőnek dropolom az összes táblát, utána létrehozom őket, ekkor az összes üres, utána szépen belepakolom az összes elemet a listákból, ez nem valami szép megoldás. Ezért az a kérdés, hogy lehet e olyat megvalósítani sql-lel, hogy csak az új adatokat dobálja bele? Sajnos van olyan táblám, ahol nincs privát kulcs, tehát olyan feltöltés kell amiben lehet több ugyanolyan adat.
Előre is köszi a segítséget.
Új hozzászólás Aktív témák
- Xbox Series X|S
- One otthoni szolgáltatások (TV, internet, telefon)
- Revolut
- Fejhallgató erősítő és DAC topik
- Futás, futópályák
- Vezetékes FÜLhallgatók
- Bittorrent topik
- Békéscsaba és környéke adok-veszek-beszélgetek
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- GYÖNYÖRŰ iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
- BESZÁMÍTÁS! GIGABYTE A520M R5 5500 16GB DDR4 512GB SSD GTX 1070 8GB Zalman T3 Plus DeepCool 400W
- ÚJ HP Omen 16 - 16,1" FHD 144Hz - i5 13420H - 16GB - 512GB - RTX 4050 - Win11 - 3 év garancia
- Apple iPhone X Space Gray Ikonikus dizájn, Face ID, OLED kijelző 64 GB Használt, megkímélt ,100%
- MacBook Air 15" (M3, 8 GB RAM, 512 GB SSD)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
bocsánat
zseniális

Azt írta melyikeket láthatja. A user_tables nem jó.
)
De a szavak értelmetlen kiforgatása legalább megy. 

![;]](http://cdn.rios.hu/dl/s/v1.gif)
Az = a probléma?


