- Fórumok
- Szoftverfejlesztés
- SQL kérdések
- (kiemelt téma)
-
3600 - 3501
6041 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Fundiego
tag
Van egy táblám, és szeretném kilistázni pilótánként az összpontszámot, a legkisebb végeredményt, a második legkisebb végeredményt, a harmadik legkisebb végeredményt és a negyedik legkisebb végeredményt egy lekérdezésben. tehát ha valakinél a végeredményben 1,1,1,1 van akkor ezt írja ki ne pedig az 1,2,3,4-et.
megoldható ez?ID ev vegeredmeny pilóta pont
1 2017 1 Valtteri Bottas 25
2 2017 2 Sebastian Vettel 18
3 2017 4 Lewis Hamilton 12
4 2017 5 Kimi Raikkonen 10
5 2017 1 Lewis Hamilton 25
6 2017 2 Valtteri Bottas 18
7 2017 3 Kimi Raikkonen 15
8 2017 7 Sebastian Vettel 6
9 2017 1 Sebastian Vettel 25
10 2017 2 Kimi Raikkonen 18
11 2017 3 Valtteri Bottas 15
12 2017 4 Lewis Hamilton 12
13 2017 1 Lewis Hamilton 25
14 2017 2 Sebastian Vettel 18
15 2017 4 Kimi Raikkonen 12
16 2017 5 Valtteri Bottas 10
17 2017 1 Lewis Hamilton 25
18 2017 2 Valtteri Bottas 18
19 2017 3 Sebastian Vettel 15
20 2017 5 Kimi Raikkonen 10
21 2017 1 Lewis Hamilton 25
22 2017 3 Valtteri Bottas 15idáig jutottam
SELECT pilota, SUM( pont ) , MIN( vegeredmeny )
FROM `futam`
WHERE ev = '2017'
GROUP BY pilota
ORDER BY SUM( pont ) DESC -
velizare
nagyúr
noh, a db-t újrarángattuk a megfelelő beállításokkal, de a megoldás egy olyan kliens használata lett, amelyik képes megmondani a jdbc drivernek a kapcsolódáshoz használt karakterszetet. pl. dbeaver.
köszi mindenkinek a segítséget!

-
velizare
nagyúr
Nincs erre valami parancs, amit minden lefuttatott script elejére be tudsz szúrni, hogy UTF8 kódolást használjon?
Mi Oracle DBAink is szoktak szívni azzal, hogy mentenek egy scriptet PL/SQL Developerből, aztán a prod környezet üzemeltetéséért felelős "kolléga" SQL Developerből futtatva mindig telibevágta vele az éles adatokat.
Azóta minden neki küldött script úgy kezdődik, hogy
ALTER SESSION SET NLS_LANGUAGE=...Aztán jönnek csak az ékezetes stringeket tartalmazó INSERTek.
úgy néz ki, valami elkúrt módon lett létrehozva ez a db ebből a szempontból, ezért viselkedik máshogy kb. minden klienssel.
-
nyunyu
félisten
Nincs erre valami parancs, amit minden lefuttatott script elejére be tudsz szúrni, hogy UTF8 kódolást használjon?
Mi Oracle DBAink is szoktak szívni azzal, hogy mentenek egy scriptet PL/SQL Developerből, aztán a prod környezet üzemeltetéséért felelős "kolléga" SQL Developerből futtatva mindig telibevágta vele az éles adatokat.
Azóta minden neki küldött script úgy kezdődik, hogy
ALTER SESSION SET NLS_LANGUAGE=...Aztán jönnek csak az ékezetes stringeket tartalmazó INSERTek.
-
velizare
nagyúr
mármint az oracle sql developerben? nem, nincs. legalábbis én nem találtam. encodingnál van utf8, meg utf-8, de nem láttam különbséget közöttük használat során.
-
bambano
titán
-
velizare
nagyúr
ha van tippetek melyikben, szívesen fogadom. valószínűleg nálam lesz valami, mert egy másik kliensről nincs ilyen probléma. sajnos ezen a vm-en nincs más kliens, ezzel kell valahogy megoldanom
@fordfairlane: igen. egy update ment ki a worksheetről.
-
fordfairlane
veterán
-
bpx
őstag
adott egy mysql tábla,
show create tableszerintdefault charset=utf8-cal létrehozva. van benne egy varchar (n) mező. a kérdés, hogy a teljes utf8 karakterkészletből melyik karaktereket tudom benne tárolni, és melyeket nem?konkrétan arra számítottam, hogy az
aäábcdeéfghiíjklmnoóöőpqrstuúüűvwxyzAÄÁBCDEÉFGHIÍJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ0123456789sztringet le tudom benne tárolni, de csak ez jött vissza:aäábcdeéfghiíjklmnoóö?pqrstuúü?vwxyzAÄÁBCDEÉFGHIÍJKLMNOÓÖ?PQRSTUÚÜ?VWXYZ0123456789.Gyanús, hogy valamelyik rétegben Latin-1 van, mert abból hiányzik az ő/ű/Ő/Ű.
-
velizare
nagyúr
-
bambano
titán
adott egy mysql tábla,
show create tableszerintdefault charset=utf8-cal létrehozva. van benne egy varchar (n) mező. a kérdés, hogy a teljes utf8 karakterkészletből melyik karaktereket tudom benne tárolni, és melyeket nem?konkrétan arra számítottam, hogy az
aäábcdeéfghiíjklmnoóöőpqrstuúüűvwxyzAÄÁBCDEÉFGHIÍJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ0123456789sztringet le tudom benne tárolni, de csak ez jött vissza:aäábcdeéfghiíjklmnoóö?pqrstuúü?vwxyzAÄÁBCDEÉFGHIÍJKLMNOÓÖ?PQRSTUÚÜ?VWXYZ0123456789.a kliensoldali kódolást is beállítottad?
mysql-hez nem értek, de postgresnél illik. -
velizare
nagyúr
adott egy mysql tábla,
show create tableszerintdefault charset=utf8-cal létrehozva. van benne egy varchar (n) mező. a kérdés, hogy a teljes utf8 karakterkészletből melyik karaktereket tudom benne tárolni, és melyeket nem?konkrétan arra számítottam, hogy az
aäábcdeéfghiíjklmnoóöőpqrstuúüűvwxyzAÄÁBCDEÉFGHIÍJKLMNOÓÖŐPQRSTUÚÜŰVWXYZ0123456789sztringet le tudom benne tárolni, de csak ez jött vissza:aäábcdeéfghiíjklmnoóö?pqrstuúü?vwxyzAÄÁBCDEÉFGHIÍJKLMNOÓÖ?PQRSTUÚÜ?VWXYZ0123456789. -
velizare
nagyúr
sziasztok
kérnék egy kis segítséget, amatőr kis problémára
1, hogy lehet meglévő táblába létrehozni egy új mezőt SQL parancsokkal?
2, adott 2 tábla, egyikbe nevek vannak, illetve a nevek egyedi azonosítójuk, másikba pedig adatok vannak hozzájuk kapcsolva, persze 1 id-hez mehet több adat is, és olyan parancs kéne, ami azokat adja vissza, akikhez nem tartozik 1 adat sem... az sikerült hogy csoportosítva kiírta, akikhez tartozik adat, de azokat nem jelenítette meg, akikhez 1 se tartozott1,
alter table táblanév
add column adattípus
2,select tábla1.* from tábla1, tábla2, where tábla1.id not in (select id from tábla2) -
Chesterfield
őstag
sziasztok
kérnék egy kis segítséget, amatőr kis problémára
1, hogy lehet meglévő táblába létrehozni egy új mezőt SQL parancsokkal?
2, adott 2 tábla, egyikbe nevek vannak, illetve a nevek egyedi azonosítójuk, másikba pedig adatok vannak hozzájuk kapcsolva, persze 1 id-hez mehet több adat is, és olyan parancs kéne, ami azokat adja vissza, akikhez nem tartozik 1 adat sem... az sikerült hogy csoportosítva kiírta, akikhez tartozik adat, de azokat nem jelenítette meg, akikhez 1 se tartozott2.

Bal oszlop második kell neked. -
bandi0000
nagyúr
sziasztok
kérnék egy kis segítséget, amatőr kis problémára
1, hogy lehet meglévő táblába létrehozni egy új mezőt SQL parancsokkal?
2, adott 2 tábla, egyikbe nevek vannak, illetve a nevek egyedi azonosítójuk, másikba pedig adatok vannak hozzájuk kapcsolva, persze 1 id-hez mehet több adat is, és olyan parancs kéne, ami azokat adja vissza, akikhez nem tartozik 1 adat sem... az sikerült hogy csoportosítva kiírta, akikhez tartozik adat, de azokat nem jelenítette meg, akikhez 1 se tartozott -
martonx
veterán
Hogy nincs row level lock, attól még gázabb lesz a konkurens írás
Csak épp emberünk nem tudott jól kérdezni. -
fordfairlane
veterán
-
martonx
veterán
-
#68216320
törölt tag
Tudja valaki, hogy a Mysql myisam eseteben lockolva van-e egy row amig update-elek vagy konkurens kornyezetben ebbol lehet baj?
-
mr.nagy
tag
Kell írni egy ciklust (CURSOR), ami összeállítja az INSERT utasítást egy változóba, amit az sp_executesql tárolt eljárással tudsz végrehajtani.
A változó, amibe az insertet rakod legyen NVARCHAR(MAX), a futtatás meg vagy EXEC sp_executesql(@VÁLTOZÓ) vagy csak simán EXEC (@VÁLTOZÓ).
Kábé a vázlata:
DECLARE @C_ID INT
DECLARE @CODE NVARCHAR(MAX)
DECLARE cursor_neve CURSOR LOCAL STATIC FOR SELECT ID FROM TÁBLA
OPEN cursor_neve
FETCH NEXT FROM cursor_neve INTO @C_ID
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @CODE=ide jön a kód, ami visszadja az insert utasítást stringbe, vagy a tárol eljárás hívás paraméterekkel
FROM tábla
WHERE ID=@C_ID
EXEC (@CODE)
FETCH NEXT FROM cursor_neve INTO @C_ID
END
CLOSE cursor_neve
DEALLOCATE cursor_neveVagy, ha kell visszajövő érték is az SP-től, akkor sp_executesql-t lehet paraméterezni szépen, feljebb a link.
Hálásan köszönöm! Holnap fogom tudni csak kipróbálni, mert már nem vagyok gép közelbe.
-
Ispy
nagyúr
Sziasztok!
Nem rég kellett elkezdenem SQL-el foglalkozni, igy ha nagyon bagatel a kérdés ne nevessetek ki!
A szerver MSSQL2008. Adva van egy tábla és egy tárolt eljárás. A feladat az lenne, hogy a tábla soraiban található mezők adatait használva paraméter ként, soronként futtassuk le a tárolt eljárást. Ez egyébként egy másik táblát tölt fel adatokkal.
Tudnátok egy egyszerű példát mutatni erre?!
Előre is köszönöm!
Kell írni egy ciklust (CURSOR), ami összeállítja az INSERT utasítást egy változóba, amit az sp_executesql tárolt eljárással tudsz végrehajtani.
A változó, amibe az insertet rakod legyen NVARCHAR(MAX), a futtatás meg vagy EXEC sp_executesql(@VÁLTOZÓ) vagy csak simán EXEC (@VÁLTOZÓ).
Kábé a vázlata:
DECLARE @C_ID INT
DECLARE @CODE NVARCHAR(MAX)
DECLARE cursor_neve CURSOR LOCAL STATIC FOR SELECT ID FROM TÁBLA
OPEN cursor_neve
FETCH NEXT FROM cursor_neve INTO @C_ID
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @CODE=ide jön a kód, ami visszadja az insert utasítást stringbe, vagy a tárol eljárás hívás paraméterekkel
FROM tábla
WHERE ID=@C_ID
EXEC (@CODE)
FETCH NEXT FROM cursor_neve INTO @C_ID
END
CLOSE cursor_neve
DEALLOCATE cursor_neveVagy, ha kell visszajövő érték is az SP-től, akkor sp_executesql-t lehet paraméterezni szépen, feljebb a link.
-
mr.nagy
tag
Sziasztok!
Nem rég kellett elkezdenem SQL-el foglalkozni, igy ha nagyon bagatel a kérdés ne nevessetek ki!
A szerver MSSQL2008. Adva van egy tábla és egy tárolt eljárás. A feladat az lenne, hogy a tábla soraiban található mezők adatait használva paraméter ként, soronként futtassuk le a tárolt eljárást. Ez egyébként egy másik táblát tölt fel adatokkal.
Tudnátok egy egyszerű példát mutatni erre?!
Előre is köszönöm!
-
martonx
veterán
Így van, erre gondoltam. Ha ez az alap query nem átlátható, akkor még erősen barátkozzál az SQL tutorialokkal

-
SUPREME7
őstag
select t.vonalkod, t.aruhaz, t.ar, log.valtozas_datum, log.regiar
from termek t
left join (
select al.*
from arvaltozas_log al
join (
select aruhaz, Max(valtozas_datum) latest_valtozas
from arvaltozas_log
group by aruhaz) latest on al.valtozas_datum = latest.latest_valtozas and al.aruhaz = latest.aruhaz
) log on t.vonalkod = log.vonalkod
and t.aruhaz = log.aruhazPár megjegyzés:
1. végre valaki, aki vette a fáradtságot normális példa készítésére
2. a logodban ez a változás dátumra maxolás elég szerencsétlen, kellene bele egy autoincrement int ID
3. nevezéktana borzalmas az adatbázisodnakOriás köszönet, sose hoztam volna össze egy ilyet, még így se igazán látom át ki kivel van, de elemezgetem

Gondolom arra gondoltál a dátum maxolással, hogy jobb lenne ID-re maxolni és akkor nem lehet egyezés.
-
SUPREME7
őstag
select t.vonalkod, t.aruhaz, t.ar, log.valtozas_datum, log.regiar
from termek t
left join (
select al.*
from arvaltozas_log al
join (
select aruhaz, Max(valtozas_datum) latest_valtozas
from arvaltozas_log
group by aruhaz) latest on al.valtozas_datum = latest.latest_valtozas and al.aruhaz = latest.aruhaz
) log on t.vonalkod = log.vonalkod
and t.aruhaz = log.aruhazPár megjegyzés:
1. végre valaki, aki vette a fáradtságot normális példa készítésére
2. a logodban ez a változás dátumra maxolás elég szerencsétlen, kellene bele egy autoincrement int ID
3. nevezéktana borzalmas az adatbázisodnakKöszi, meglesem
Csak példaként raktam össze, az oszlop nevek stb az átláthatóságért ilyenek + kihagytam a "felesleges" dolgokat 
-
martonx
veterán
Sziasztok, picit megrekedtem az SQL tudásommal
Volna 2 tábla, egyikben termékek vannak, vonalkód és áruház és az ára. A másik egy LOG, ha változik egy vonalkód ára az adott áruházban akkor mentődik.Az lenne a lekérdezés lényege, hogy listázzam az összes terméket az első táblából, és ha van hozzá tartozó log, akkor azt is, de abból is csak a legutolsót az adott áruház-vonalkód alapján.
Itt lenne a minta amit tovább kellene vinnem:
https://www.db-fiddle.com/f/unix3VPHaQTSD3GCjf58zA/3
És az lenne a cél, hogy ezt kapjam vissza, ugyebár minden áruház csak egyszer szerepeljen és csak a legutolsó log adatai legyenek mellette, amihez pedig nincs log, ott NULL-t adjon vissza:
vonalkod | aruhaz | ar | valtozas_datum | regiar
59900444 | Budapest | 33000 | 2017-10-03 12:00 | 87000
59900444 | Szeged | 44000 | 2017-10-05 10:00 | 660000
59900444 | Pécs | 55000 | NULL | NULLA gondom az, hogy ha leszűröm azzal, hogy
GROUP BY termek.aruhazakkor ugyan visszakapom nagyjából azt amit szeretnék, de a Budapesti áruházból nem a legutolsó logot.SELECT termek.vonalkod,termek.aruhaz,termek.ar, arvaltozas_log.valtozas_datum,arvaltozas_log.regiar
FROM termek LEFT JOIN arvaltozas_log
ON termek.vonalkod=arvaltozas_log.vonalkod
AND termek.aruhaz=arvaltozas_log.aruhaz GROUP BY termek.aruhaz;Tovább szűröm így
MAX(arvaltozas_log.valtozas_datum)akkor már a legutolsó dátumot kapom vissza, de nem az ahhoz tartozó "régi árat" teszi hozzá ....
SELECT termek.vonalkod,termek.aruhaz,termek.ar, MAX(arvaltozas_log.valtozas_datum),arvaltozas_log.regiar
FROM termek LEFT JOIN arvaltozas_log
ON termek.vonalkod=arvaltozas_log.vonalkod
AND termek.aruhaz=arvaltozas_log.aruhaz GROUP BY termek.aruhaz;Köszönöm ha valaki tudna segíteni.

select t.vonalkod, t.aruhaz, t.ar, log.valtozas_datum, log.regiar
from termek t
left join (
select al.*
from arvaltozas_log al
join (
select aruhaz, Max(valtozas_datum) latest_valtozas
from arvaltozas_log
group by aruhaz) latest on al.valtozas_datum = latest.latest_valtozas and al.aruhaz = latest.aruhaz
) log on t.vonalkod = log.vonalkod
and t.aruhaz = log.aruhazPár megjegyzés:
1. végre valaki, aki vette a fáradtságot normális példa készítésére
2. a logodban ez a változás dátumra maxolás elég szerencsétlen, kellene bele egy autoincrement int ID
3. nevezéktana borzalmas az adatbázisodnak -
SUPREME7
őstag
Sziasztok, picit megrekedtem az SQL tudásommal
Volna 2 tábla, egyikben termékek vannak, vonalkód és áruház és az ára. A másik egy LOG, ha változik egy vonalkód ára az adott áruházban akkor mentődik.Az lenne a lekérdezés lényege, hogy listázzam az összes terméket az első táblából, és ha van hozzá tartozó log, akkor azt is, de abból is csak a legutolsót az adott áruház-vonalkód alapján.
Itt lenne a minta amit tovább kellene vinnem:
https://www.db-fiddle.com/f/unix3VPHaQTSD3GCjf58zA/3
És az lenne a cél, hogy ezt kapjam vissza, ugyebár minden áruház csak egyszer szerepeljen és csak a legutolsó log adatai legyenek mellette, amihez pedig nincs log, ott NULL-t adjon vissza:
vonalkod | aruhaz | ar | valtozas_datum | regiar
59900444 | Budapest | 33000 | 2017-10-03 12:00 | 87000
59900444 | Szeged | 44000 | 2017-10-05 10:00 | 660000
59900444 | Pécs | 55000 | NULL | NULLA gondom az, hogy ha leszűröm azzal, hogy
GROUP BY termek.aruhazakkor ugyan visszakapom nagyjából azt amit szeretnék, de a Budapesti áruházból nem a legutolsó logot.SELECT termek.vonalkod,termek.aruhaz,termek.ar, arvaltozas_log.valtozas_datum,arvaltozas_log.regiar
FROM termek LEFT JOIN arvaltozas_log
ON termek.vonalkod=arvaltozas_log.vonalkod
AND termek.aruhaz=arvaltozas_log.aruhaz GROUP BY termek.aruhaz;Tovább szűröm így
MAX(arvaltozas_log.valtozas_datum)akkor már a legutolsó dátumot kapom vissza, de nem az ahhoz tartozó "régi árat" teszi hozzá ....
SELECT termek.vonalkod,termek.aruhaz,termek.ar, MAX(arvaltozas_log.valtozas_datum),arvaltozas_log.regiar
FROM termek LEFT JOIN arvaltozas_log
ON termek.vonalkod=arvaltozas_log.vonalkod
AND termek.aruhaz=arvaltozas_log.aruhaz GROUP BY termek.aruhaz;Köszönöm ha valaki tudna segíteni.

-
Petya25
őstag
-
Petya25
őstag
Tehát próbáljam meg szövegesen összerakni és úgy fusson?
Kicsit bonyolultabb az sp van előtte insert into belőle másik táblába majd az eldobás, de azért rápróbálok, köszönöm. -
martonx
veterán
Valami banális tipp arra, hogy egy felhasználói táblát hogy tudok MS SQL tárolt eljárásban megszólítani? Van egy változó bemenő paraméterem a névhez, de hogy illesszem a tábla elé hogy megtaláljam?
Kb ennyi lenne a cél:
alter PROCEDURE sp
@user nvarchar(30)
AS
BEGINdrop table @user.tabla
END
GOdeclare @query varchar(1000);set @query = 'drop table ' + @user + '.tablename';
exec (@query);
fejből írtam, nem vállalok érte felelősséget, de valami ilyesmit szeretnél.
-
Petya25
őstag
Valami banális tipp arra, hogy egy felhasználói táblát hogy tudok MS SQL tárolt eljárásban megszólítani? Van egy változó bemenő paraméterem a névhez, de hogy illesszem a tábla elé hogy megtaláljam?
Kb ennyi lenne a cél:
alter PROCEDURE sp
@user nvarchar(30)
AS
BEGINdrop table @user.tabla
END
GO -
Fundiego
tag
Szélsőséges esetben előfordulhat olyan holtverseny is, ahol két versenyző az összes sportágat tekintve azonos helyezésekkel rendelkezik. Ekkor csak pénzfeldobás (--> random szám generálás) dönthet. Vagy létrehozol egy külön táblát, amiben a fair-play értékeket vezeted.

Visszatérve a problémádhoz talán megoldás lehetne, ha játékosonként a játékosok helyezéseit sorbarendezve, összefűzve letárolnád, és ennek a minimumát vennéd a helyezések minimuma helyett. Pl.:
egyik játékos helyezései:
1, 2, 2, 4, 5, 5, 5-->1224555másik játékos helyezései:
1, 2, 3, 3, 3, 3, 3-->1233333Oracle-ben ehhez a listagg() függvényt tudod használni. Valahogy így:
listagg(helyezes) WITHIN GROUP (ORDER BY helyezes) OVER (PARTITION BY jatekos)Köszönöm. De sajnos nem működik vmiért pedig utánanéztem példákon át. lehet mert webserveren futtatom a lekérdezést?
within group-al van szerintem probléma amit nem tud értelmezni -
Apollo17hu
őstag
Hali
Van egy táblám ami sporteredményeket tartalmaz(versenyekre lebontva). Sorba akarom rendezni az összpontszám alapján ami megy is ORDER BY SUM(pont), azonban ha ugyanannyi pontjuk van az illetőknek akkor legjobb helyezés szerint tegye sorba ez is megvan még MIN(helyezes), de mi van akkor ha itt is ugyanannyi pontja van két versenyzőnek és a legjobb eredményük is ugyanaz? hogy lehet azt beleiktatni, hogy a 2. legjobb eredmény szerint is rendezzen sorba?
SELECT jatekos,COALESCE(SUM(Pont),0)
FROM `fordulo`
group by jatekos
order by sum(pont) desc,min(helyezes)Szélsőséges esetben előfordulhat olyan holtverseny is, ahol két versenyző az összes sportágat tekintve azonos helyezésekkel rendelkezik. Ekkor csak pénzfeldobás (--> random szám generálás) dönthet. Vagy létrehozol egy külön táblát, amiben a fair-play értékeket vezeted.

Visszatérve a problémádhoz talán megoldás lehetne, ha játékosonként a játékosok helyezéseit sorbarendezve, összefűzve letárolnád, és ennek a minimumát vennéd a helyezések minimuma helyett. Pl.:
egyik játékos helyezései:
1, 2, 2, 4, 5, 5, 5-->1224555másik játékos helyezései:
1, 2, 3, 3, 3, 3, 3-->1233333Oracle-ben ehhez a listagg() függvényt tudod használni. Valahogy így:
listagg(helyezes) WITHIN GROUP (ORDER BY helyezes) OVER (PARTITION BY jatekos) -
Fundiego
tag
Hali
Van egy táblám ami sporteredményeket tartalmaz(versenyekre lebontva). Sorba akarom rendezni az összpontszám alapján ami megy is ORDER BY SUM(pont), azonban ha ugyanannyi pontjuk van az illetőknek akkor legjobb helyezés szerint tegye sorba ez is megvan még MIN(helyezes), de mi van akkor ha itt is ugyanannyi pontja van két versenyzőnek és a legjobb eredményük is ugyanaz? hogy lehet azt beleiktatni, hogy a 2. legjobb eredmény szerint is rendezzen sorba?
SELECT jatekos,COALESCE(SUM(Pont),0)
FROM `fordulo`
group by jatekos
order by sum(pont) desc,min(helyezes) -
anulu
félisten
SQL Server 2012 SP3-mal kapcsolatban lenne kérdésem. megoldható-e, és hogyan, hogy ha van egy security group, akkor annak az összes tagjától elvenni annak a lehetőségét, hogy bármelyik csoporton SQL permissiont (jogosultság hozzáadás/elvétel) tudjon módosítani, illetve új security logint tudjon beállítani? akár úgy is, hogy egyébként a serveren local adminok. és hogy ezt a megszorítást még véletlenül se tudják módosítani?
-
tm5
tag

Teljesen jó ez is. Azt nem értem, hogy én miért nem ezt írtam annak fényében, hogy kb. 1 éve csináltam én is egy csomó ilyet

-
kem
addikt
-
pvt.peter
őstag
Érdekes, úgy rémlett, hogy később kijavítottam column_value-t SA.value-ra.
SUBSTR(sa.VALUE,4,LENGTH(sa.VALUE)-7): ide a 4 helyére azt kell írni, ahol kezdődik a tényleges érték. '<s>' ugye 3 karakter hosszú, tehát a negyedik karakternél fog kezdődni a tényleges mezőérték. A LENGTH(sa.VALUE)-7 megadja, hogy hány karakter hosszú a tényleges mezőérték. Ezt úgy kapjuk meg, hogy a mező teljes hosszából (LENGTH(sa.VALUE)) levonjuk a fölösleges rész hosszát. Ez a mi példánkban 7 volt, mert '<s>' és '</s>' összesen 7 karakter.Tehát ha a boolean-ből szeretnéd kibányászni a tényleges mezőértéket, akkor az így néz ki:
'<boolean>' hossza 9 (tehát a 10. karakteren fog kezdődni ami neked kell)
'</boolean>' hossza 10SUBSTR(sa.VALUE,10,LENGTH(sa.VALUE)-19)köszi a magyarázatot
épp a napokban láttam egy ehhez hasonló borzadványt, rögtön át is ugrottam, de most már világos, hogy mi micsoda volt benne a n+1. beágyazásnál

-
tm5
tag
-
kem
addikt
Érdekes, úgy rémlett, hogy később kijavítottam column_value-t SA.value-ra.
SUBSTR(sa.VALUE,4,LENGTH(sa.VALUE)-7): ide a 4 helyére azt kell írni, ahol kezdődik a tényleges érték. '<s>' ugye 3 karakter hosszú, tehát a negyedik karakternél fog kezdődni a tényleges mezőérték. A LENGTH(sa.VALUE)-7 megadja, hogy hány karakter hosszú a tényleges mezőérték. Ezt úgy kapjuk meg, hogy a mező teljes hosszából (LENGTH(sa.VALUE)) levonjuk a fölösleges rész hosszát. Ez a mi példánkban 7 volt, mert '<s>' és '</s>' összesen 7 karakter.Tehát ha a boolean-ből szeretnéd kibányászni a tényleges mezőértéket, akkor az így néz ki:
'<boolean>' hossza 9 (tehát a 10. karakteren fog kezdődni ami neked kell)
'</boolean>' hossza 10SUBSTR(sa.VALUE,10,LENGTH(sa.VALUE)-19)Nagyon szepen koszonom, sikerult megertenem vegre az egeszet.

Nagyon sok extra munkat sporolt meg es hasznos tudast is adott, szoval koszonom meg egyszer.kem
-
tm5
tag
Leteszteltem az elobb, es kis modositassal mukodik. 1-nel tobb szamjeggyel is, ami nekem fontos. Itt egy masik pelda, amiben nem sok elteres van, szoval elvileg erre at tudom irni.
< <boolean>false</boolean>, 152312 >
< <boolean>true</boolean>, 176 >
< <s>false</s>, 271636 >
< <s>true</s>, 1338 >Itt ugye csak annyi valtozik, hogy az int-bol boolean lesz, tehat:
update subscription_attribute sa
set sa.VALUE = '<boolean>'||SUBSTR(sa.VALUE,4,LENGTH(sa.VALUE)-7)||'</boolean>'
...
where sa.VALUE LIKE '<s>%</s>'Viszont ha megforditjuk a helyzetet, es boolean-bol kell mast csinalni, akkor mar a szamokat is at kell irni a SUBSTR utan. Ezt a reszt nem tudtam ertelmezni, csak kapisgalom:
SUBSTR(column_value,4,LENGTH(sa.VALUE)-7)
A column_value helyett sa.VALUE-val mukodik, a 4-es gondolom az elso karakter amit megovunk, de azt ami utana van nem ertem.

Érdekes, úgy rémlett, hogy később kijavítottam column_value-t SA.value-ra.
SUBSTR(sa.VALUE,4,LENGTH(sa.VALUE)-7): ide a 4 helyére azt kell írni, ahol kezdődik a tényleges érték. '<s>' ugye 3 karakter hosszú, tehát a negyedik karakternél fog kezdődni a tényleges mezőérték. A LENGTH(sa.VALUE)-7 megadja, hogy hány karakter hosszú a tényleges mezőérték. Ezt úgy kapjuk meg, hogy a mező teljes hosszából (LENGTH(sa.VALUE)) levonjuk a fölösleges rész hosszát. Ez a mi példánkban 7 volt, mert '<s>' és '</s>' összesen 7 karakter.Tehát ha a boolean-ből szeretnéd kibányászni a tényleges mezőértéket, akkor az így néz ki:
'<boolean>' hossza 9 (tehát a 10. karakteren fog kezdődni ami neked kell)
'</boolean>' hossza 10SUBSTR(sa.VALUE,10,LENGTH(sa.VALUE)-19) -
kem
addikt
Hát a WHERE feltételben az van, hogy minden olyan rekordra fusson le aminél a mező értéke '<s>'-sel kezdődik és '</s>' -re végződik.
A SET-nél az van, hogy vágja ki a két fenti markup közti részt és rakja '<int>' és '</int>' közé.
Tehát így transzformál (elvileg):
'<s>1</s>' -> '<int>1</int>'
'<s>12</s>' -> '<int>12</int>'
'<s>999</s>' -> '<int>999</int>'
stb.Ha esetleg más szerkezetű (is) a mező tartalma, amit konvertálni kell, akkor írj már rá, légy szíves, néhány példát és akkor átfogalmazzuk a parancsot.
Leteszteltem az elobb, es kis modositassal mukodik. 1-nel tobb szamjeggyel is, ami nekem fontos. Itt egy masik pelda, amiben nem sok elteres van, szoval elvileg erre at tudom irni.
< <boolean>false</boolean>, 152312 >
< <boolean>true</boolean>, 176 >
< <s>false</s>, 271636 >
< <s>true</s>, 1338 >Itt ugye csak annyi valtozik, hogy az int-bol boolean lesz, tehat:
update subscription_attribute sa
set sa.VALUE = '<boolean>'||SUBSTR(sa.VALUE,4,LENGTH(sa.VALUE)-7)||'</boolean>'
...
where sa.VALUE LIKE '<s>%</s>'Viszont ha megforditjuk a helyzetet, es boolean-bol kell mast csinalni, akkor mar a szamokat is at kell irni a SUBSTR utan. Ezt a reszt nem tudtam ertelmezni, csak kapisgalom:
SUBSTR(column_value,4,LENGTH(sa.VALUE)-7)
A column_value helyett sa.VALUE-val mukodik, a 4-es gondolom az elso karakter amit megovunk, de azt ami utana van nem ertem.

-
tm5
tag
Hát a WHERE feltételben az van, hogy minden olyan rekordra fusson le aminél a mező értéke '<s>'-sel kezdődik és '</s>' -re végződik.
A SET-nél az van, hogy vágja ki a két fenti markup közti részt és rakja '<int>' és '</int>' közé.
Tehát így transzformál (elvileg):
'<s>1</s>' -> '<int>1</int>'
'<s>12</s>' -> '<int>12</int>'
'<s>999</s>' -> '<int>999</int>'
stb.Ha esetleg más szerkezetű (is) a mező tartalma, amit konvertálni kell, akkor írj már rá, légy szíves, néhány példát és akkor átfogalmazzuk a parancsot.
-
kem
addikt
Megkerdezhetnem, hogy ebben mi mit jelent?

Amit fontos meg elernem, hogy a formula alkalmazhato legyen akarmennyi karakterre ami az ertek reszen van. -
kem
addikt
-
tm5
tag
Pl az egyik platformnak, ez az egyik attributuma, amit roszul provisioningeltek sokaig:
< <int>3</int>, 150328 >
< <int>5</int>, 2093 >
< <s>3</s>, 288405 >
< <s>5</s>, 6370 >Az osszes stringet itt at kellene nevezni integerre. A bal oldali az ertek, a jobb oldali az a number of subscribtioins amihez az az ertek van rendelve. Valahogy egyszerre szeretnem az osszes 5-os, es 3-ast is feldolgozni. Van ahol ebbol tobb mint 10 ertek van, nem csak ez a ketto.
Szoval a kerdesem valoszinuleg alap SQL whitecard tema amivel nem vagyok tisztaba. Mukodne az ugy pl, hogy <s>*</s> van a filterben, es <int>*</int> az update oldalon? Gondolom nem ilyen egyszeru a tema.
Valami ilyesmi lehetne az update parancs:
update subscription_attribute sa
set sa.VALUE = '<int>'||SUBSTR(column_value,4,LENGTH(sa.VALUE)-7)||'</int>'
...
where sa.VALUE LIKE '<s>%</s>' -
kem
addikt
Sziasztok!
A kerdesem az lenne, hogy hogyan tudnek megvaltoztatni egy mezo tipusat de az erteket nem? Nekem ugy tunik, hogy a tipus is az ertek "string" resze pl: <s>2</s> vagy <int>2</int>. Nagyon sok ertek rosszul van definialva, ami miatt a logokat telef*ssa az applikacio, de mukodik. Jelenleg ertekenkent mgyek rajta vegig, de igy nagyon lassan tudok majd vegezni, kb 400 change kellene hozza (8platform, 500k+ user, 50+ attributum).
A filter amit most hasznalok:
update subscription_attribute sa
set sa.VALUE = '<int>2</int>'
...
and sa.value LIKE '<s>2</s>'Ez egyebkent TimesTen DB, es a DBAnk nyugdijba ment

Koszi a segitseget elore is.
Pl az egyik platformnak, ez az egyik attributuma, amit roszul provisioningeltek sokaig:
< <int>3</int>, 150328 >
< <int>5</int>, 2093 >
< <s>3</s>, 288405 >
< <s>5</s>, 6370 >Az osszes stringet itt at kellene nevezni integerre. A bal oldali az ertek, a jobb oldali az a number of subscribtioins amihez az az ertek van rendelve. Valahogy egyszerre szeretnem az osszes 5-os, es 3-ast is feldolgozni. Van ahol ebbol tobb mint 10 ertek van, nem csak ez a ketto.
Szoval a kerdesem valoszinuleg alap SQL whitecard tema amivel nem vagyok tisztaba. Mukodne az ugy pl, hogy <s>*</s> van a filterben, es <int>*</int> az update oldalon? Gondolom nem ilyen egyszeru a tema.
-
kem
addikt
Sziasztok!
A kerdesem az lenne, hogy hogyan tudnek megvaltoztatni egy mezo tipusat de az erteket nem? Nekem ugy tunik, hogy a tipus is az ertek "string" resze pl: <s>2</s> vagy <int>2</int>. Nagyon sok ertek rosszul van definialva, ami miatt a logokat telef*ssa az applikacio, de mukodik. Jelenleg ertekenkent mgyek rajta vegig, de igy nagyon lassan tudok majd vegezni, kb 400 change kellene hozza (8platform, 500k+ user, 50+ attributum).
A filter amit most hasznalok:
update subscription_attribute sa
set sa.VALUE = '<int>2</int>'
...
and sa.value LIKE '<s>2</s>'Ez egyebkent TimesTen DB, es a DBAnk nyugdijba ment

Koszi a segitseget elore is.
-
nyunyu
félisten
ha két táblát összekapcsolok, akkor lehet olyat h ami C oszlopban szerepel-t az ne szerepeljen a B oszlopban. így néz ki a lekérdezés.
tárolás gyümölcs1 gyümölcs2
fa alma narancs
fa narancs almaés azt akarom h ez legyen belőle
tárolás gyümölcs1 gyümölcs2
fa alma narancsgroup by azért nem jó, mert counttal megakarom számolni hogy hány hónapban volt több eladás az almából mint narancsból, tehát ígyis úgyis duplán számolná ha group-ot alkalmaznék
Önmagával left outer joinnal kiszűrni a "duplikációkat"?
Valami ilyesmi Oracleben:
select t1.*
from tabla t1, tabla t2
where t1.c=t2.b (+)
and t2.b is null;Vagy szabványos szintaxissal:
select t1.*
from tabla t1
left join tabla t2
on t1.c=t2.b
where t2.b is null; -
Apollo17hu
őstag
ha két táblát összekapcsolok, akkor lehet olyat h ami C oszlopban szerepel-t az ne szerepeljen a B oszlopban. így néz ki a lekérdezés.
tárolás gyümölcs1 gyümölcs2
fa alma narancs
fa narancs almaés azt akarom h ez legyen belőle
tárolás gyümölcs1 gyümölcs2
fa alma narancsgroup by azért nem jó, mert counttal megakarom számolni hogy hány hónapban volt több eladás az almából mint narancsból, tehát ígyis úgyis duplán számolná ha group-ot alkalmaznék
Valami nagyon nem jó az adatbázisod kialakításában.

Martonx fórumtárs szokta javasolni, hogy egy mintát tölts fel sqlfiddle-re, mert így nem tudunk segíteni. -
Fundiego
tag
ha két táblát összekapcsolok, akkor lehet olyat h ami C oszlopban szerepel-t az ne szerepeljen a B oszlopban. így néz ki a lekérdezés.
tárolás gyümölcs1 gyümölcs2
fa alma narancs
fa narancs almaés azt akarom h ez legyen belőle
tárolás gyümölcs1 gyümölcs2
fa alma narancsgroup by azért nem jó, mert counttal megakarom számolni hogy hány hónapban volt több eladás az almából mint narancsból, tehát ígyis úgyis duplán számolná ha group-ot alkalmaznék
-
Fundiego
tag
Én sem teljesen értem a problémádat, de ahol NOT IN operátort használsz, ott a "szallitas" mezőt célszerű nlv() függvénybe tenni, mert a nullértékek boríthatják a logikádat.
átírtam a 'volt'-ot 1-re így már működött
-
pvt.peter
őstag
na közben megszültem...
kiderült azért nem ment, mert már az elejétől kezdve nem a megfelelő mezőre szűrtem...
mellesleg jó lett volna az első elgondolásom is, csak ugye nem adott vissza semmi értelmes eredményt, ezért hittem azt hogy vmit szarul csinálok

mindenesetre köszönöm a részletes és gyors választ
mellesleg a te tipped is jó volt a convert -tel

-
Ispy
nagyúr
Tehát az első oszlopból csak az első sor értékét?
Fura megoldás, ilyet nem nagyon szoktam, de mondjuk találsz valami értéket, ami szerint sorba rendezel és akkor
SELECT TOP 1 [[I]mezők felsorolása[/I]], plusz berakod a convert-et az első oszlopra (mi, ez integer, float?). -
pvt.peter
őstag
-
Ispy
nagyúr
Sziasztok,
MS SQL -ben szeretném az első sor és első oszlop által visszaadott értéket Stringként kezelni.
Tehát nem a "dobozra" vagyok kíváncsi, hanem arra ami benne van.A lekérdezés sematikusan így néz ki:
select Column1 from table1 where Condition1 = 'ConditionValue'Egy sorból és egy oszlopból álló halmazt ad vissza, ezt az egyet szeretném nvarchar -ként kezelni.
A másik nagyon fontos dolog, csak SQL utasításokat használhatok, semmi tárolt eljárás, kurzor, fgv., stb.
Jól értem, hogy a Column1 értékét szeretnéd nvarcharként visszakapni?
Ha igen, akkor CONVERT.
-
pvt.peter
őstag
Sziasztok,
MS SQL -ben szeretném az első sor és első oszlop által visszaadott értéket Stringként kezelni.
Tehát nem a "dobozra" vagyok kíváncsi, hanem arra ami benne van.A lekérdezés sematikusan így néz ki:
select Column1 from table1 where Condition1 = 'ConditionValue'Egy sorból és egy oszlopból álló halmazt ad vissza, ezt az egyet szeretném nvarchar -ként kezelni.
A másik nagyon fontos dolog, csak SQL utasításokat használhatok, semmi tárolt eljárás, kurzor, fgv., stb.
-
disy68
aktív tag
-
hundai
aktív tag
Sziasztok!
Mysql Workbench-be betöltöttem egy adatbázis aminek tartalma szövegesen is megjelent.
Hogyan érhetem el azt a szövegboxot ahova a lekérdezéseket írhatom? -
Apollo17hu
őstag
Én sem teljesen értem a problémádat, de ahol NOT IN operátort használsz, ott a "szallitas" mezőt célszerű nlv() függvénybe tenni, mert a nullértékek boríthatják a logikádat.
-
tm5
tag
-
Fundiego
tag
-
tm5
tag
Lehet megint triviális a válasz, de az istenért sem jövök rá h mi a gond

SELECT DISTINCT (
SELECT COUNT(*)
FROM minden WHERE gyumolcs='alma' AND szallitas NOT IN('volt')
) AS 'szállítás nélküliitt 0-t ír ki.pedig van olyan sor ahol szerepel a szallitas oszlopban a 'volt'.(tehát elvileg ezeket kéne levonnia az egészből)
SELECT DISTINCT (
SELECT COUNT(*)
FROM minden WHERE gyumolcs='alma'
) AS 'szállítás nélküli'ilyenkor kirja az összes értéket ami helyes is.
van vmi ötlet h mit rontok el?
'Ez jól adja amúgy vissza a hiányzó sorokat?
SELECT COUNT(*)
FROM minden WHERE gyumolcs='alma' AND szallitas NOT IN('volt') -
Fundiego
tag
Lehet megint triviális a válasz, de az istenért sem jövök rá h mi a gond

SELECT DISTINCT (
SELECT COUNT(*)
FROM minden WHERE gyumolcs='alma' AND szallitas NOT IN('volt')
) AS 'szállítás nélküliitt 0-t ír ki.pedig van olyan sor ahol szerepel a szallitas oszlopban a 'volt'.(tehát elvileg ezeket kéne levonnia az egészből)
SELECT DISTINCT (
SELECT COUNT(*)
FROM minden WHERE gyumolcs='alma'
) AS 'szállítás nélküli'ilyenkor kirja az összes értéket ami helyes is.
van vmi ötlet h mit rontok el?
' -
tm5
tag
-
DS39
nagyúr
He?
Nem papír méretben mérjük a szöveget, hanem karakter számban.
Ha belefér pl. a TEXT típusba, akkor tudsz benne szavakra keresni. -
ALFA
senior tag
Szöveges adatbáziskezelőt ismer valaki? Weben nem volt rá találat.
A lényege az lenne, hogy 5-10 oldalnyi A4-es méretű szöveget kellene tárolni és vagy bennük, vagy létrehozott szóindex alapján szavakra keresni. -
Fundiego
tag
-
Ispy
nagyúr
-
Fundiego
tag
Hali
count (case when...) el kérdezek le valamit majd évenkénti GROUP BY-ba teszem.van rá mód, h ahol 0 lesz adott évben azt ne mutassa ki a lekérdezés?
-
Dilikutya
félisten
-
Dilikutya
félisten
1118: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Ezzel mit lehet kezdeni, ha a hibaüzenetben javasolt megoldások nem segítenek? Alapból csak TEXT és TINYINT van, de utóbbi mezőkben valóban csak szám van. A TEXT mezők hosszabb, pár száz, olykor ezer karakter körüli szövegeket tartalmaznak.
Nem sokkal később megtaláltam a megoldást:
SET GLOBAL innodb_file_format = barracuda; Ezt futtatni kell egy query-ből.
Ez érvényes lesz az újonnan létrehozott táblákra. A problémás sorok importálásához xlsx táblázatból újra létre kell hozni már ily módon a táblát, ezúttal DYNAMIC-ként, és menni fog.
CREATE TABLE table (`mezonev` MEZOTIPUS) ENGINE=InnoDB ROW_FORMAT=DYNAMIC....;
-
martonx
veterán
1118: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Ezzel mit lehet kezdeni, ha a hibaüzenetben javasolt megoldások nem segítenek? Alapból csak TEXT és TINYINT van, de utóbbi mezőkben valóban csak szám van. A TEXT mezők hosszabb, pár száz, olykor ezer karakter körüli szövegeket tartalmaznak.
A tábla create scriptjét betennéd ide? Vélhetően a Text oszlop méret korlátját kellene valahogy megemelned. [link]
-
Dilikutya
félisten
1118: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Ezzel mit lehet kezdeni, ha a hibaüzenetben javasolt megoldások nem segítenek? Alapból csak TEXT és TINYINT van, de utóbbi mezőkben valóban csak szám van. A TEXT mezők hosszabb, pár száz, olykor ezer karakter körüli szövegeket tartalmaznak.
-
mckay
aktív tag
más topikokban én is pont így érzek!

srácok, köszi, már olvasgatok, és amiket küldtetek, azok is érdekesek, azokat is nézem!

-
sztanozs
veterán
Ja.

Azt hittem van már egy működő rendszer, amiben dolgoznod kell majd (vagy csak nem árulják el neked
), ezért gondoltam, hogy akkor lehetne célirányosan menni, mert az eszközök megismerése legalább olyan fontos szerintem, mint maga az SQL nyelvé, ráadásul ezek nem 100%-ig kompatibilisek egymással, vannak azért eltérések.De valóban, ha nem tudsz még semmit, akkor teljesen jó egy általános SQL leírás, hogy legalább azt a 20 kulcsszót megismerd, amit kell használni.
(#3523) martonx
Ha mindenki tudná használni a guglit, akkor bezárhatnánk a PH fórumot.
![;]](//cdn.rios.hu/dl/s/v1.gif)
Ha mindenki tudná használni a guglit, akkor bezárhatnánk a PH fórumot.
Nem hiszem, hogy ne tudnák használni, hiszen az újoncok valahogy mindig idetalálnak
-
Ispy
nagyúr
Ja.

Azt hittem van már egy működő rendszer, amiben dolgoznod kell majd (vagy csak nem árulják el neked
), ezért gondoltam, hogy akkor lehetne célirányosan menni, mert az eszközök megismerése legalább olyan fontos szerintem, mint maga az SQL nyelvé, ráadásul ezek nem 100%-ig kompatibilisek egymással, vannak azért eltérések.De valóban, ha nem tudsz még semmit, akkor teljesen jó egy általános SQL leírás, hogy legalább azt a 20 kulcsszót megismerd, amit kell használni.
(#3523) martonx
Ha mindenki tudná használni a guglit, akkor bezárhatnánk a PH fórumot.
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
martonx
veterán
Vettem a fáradtságot és helyettetek rágugliztam az sql tutorial szuper váratlan kulcsszavakra, majd nekem az első három találat közül ez tetszett a legjobban: https://www.tutorialspoint.com/sql/sql-quick-guide.htm bocs, telefonról vagyok, és nem jelenik meg a link beszúrás.
-
mckay
aktív tag
hejj, ha tudnám!

egyelőre az a cél, hogy ne nézzek a legalapabb fogalmaknál is kukán, amikor találkozom a senior-ral
gondolom nem Oracle fog szóba kerülni, ennyi sejthető, más nemez az SQLFiddle.com jó mókának tűnik, hátha laikusként is leesik valami, nyomogatni fogom holnap
:-)thx!

-
velizare
nagyúr
-
martonx
veterán
Meg tegyük hozzá, hogy az SQL a világ legegyszerűbb nyelve, alapból azt hiszem valami 23 kulcsszóból áll az SQL szabvány szerint (na jó ahogy látom az SQL szabvány is fejlődik [link] de ez a lényegen mit sem változtat). A lényeg, hogy a halmazelméletet, halmazműveleteket érteni kell hozzá, ami általános iskolás matematika, semmi extra
Szóval ez marhára nem olyan, amit alap szinten könyvből kellene tanulgatni. Picit utána kell olvasni, picit játszani kell SQL Fiddle-ön (létrehozni 2-3 táblát, beléjük tolni pár adatsort, és már mehet is). Vagy persze el lehet szórakozni komplett SQL telepítéssel, hozzájuk IDE telepítéssel, konfigurálással, majd jöhet ugyanaz, hogy táblákat készítesz, beléje sorokat teszel, és queryzed. -
Ispy
nagyúr
-
sztanozs
veterán
Codewars-on vannak egyszerű SQL feladványok is (postgres - de alapnak szerintem mindegy, mit tanul meg az ember).
-
mckay
aktív tag
-
metaldog
senior tag
Sziasztok
Kezdőknek milyen könyvet tudnátok ajánlani tanuláshoz? -
Ispy
nagyúr
-
martonx
veterán
-
Ablakos
addikt
-
bambano
titán
Sziasztok!
A legnagyobb tisztelettel szeretnék kérni pár linket, ha egyáltalán tudtok ilyesmit.
Meg kéne értenem, hogy mit és hogy csinálhatunk alap szinten egy SQL adatbázissal!
Tudom, ez most nagyon mókásan hangzik, hiszen ez egy külön szakma. És én semmit nem tudok belőle, soha nem is használtam, soha egy lekérdezést nem csináltam. Mert hardveres vagyok.

De most kitalálták a munkahelyemen, hogy apróbb (kinek apró?...) SQL-megoldást majd a "kisebbik rendszergazda" is meg tud csinálni. Pontosabban azt találták ki, hogy az eddig ilyeneket mókoló senior rendszergazda majd jól bevezeti a kisebbiket, azaz, és már a jövő héttől kezdheti az okosításomat.
Ez mind jó és szép, de nem vagyunk igazán olyan viszonyban, hogy megkérjem, hogy úgy mutasson alapinfókat, mintha csak Juliska lennék az X osztályról. Fel kéne készülnöm, hogy legalább az alapfogalmakkal, alapfogásokkal tisztában legyek az első találkozásunkra. Például hogy milyen prograra kéne kattintani a start menüben...
És végülis szívesen segíteném az ő munkáját, miért is ne, de hát hol kezdjek hozzá?Tudnátok ilyen láma-beavató oldalakat/pdf-eket/könyveket javasolni?

Üdv és köszi.
beírod a gugliba, hogy Halassy Béla adatbázis
fog hozni pdf-re is találatokat. -
Ispy
nagyúr
Sziasztok!
A legnagyobb tisztelettel szeretnék kérni pár linket, ha egyáltalán tudtok ilyesmit.
Meg kéne értenem, hogy mit és hogy csinálhatunk alap szinten egy SQL adatbázissal!
Tudom, ez most nagyon mókásan hangzik, hiszen ez egy külön szakma. És én semmit nem tudok belőle, soha nem is használtam, soha egy lekérdezést nem csináltam. Mert hardveres vagyok.

De most kitalálták a munkahelyemen, hogy apróbb (kinek apró?...) SQL-megoldást majd a "kisebbik rendszergazda" is meg tud csinálni. Pontosabban azt találták ki, hogy az eddig ilyeneket mókoló senior rendszergazda majd jól bevezeti a kisebbiket, azaz, és már a jövő héttől kezdheti az okosításomat.
Ez mind jó és szép, de nem vagyunk igazán olyan viszonyban, hogy megkérjem, hogy úgy mutasson alapinfókat, mintha csak Juliska lennék az X osztályról. Fel kéne készülnöm, hogy legalább az alapfogalmakkal, alapfogásokkal tisztában legyek az első találkozásunkra. Például hogy milyen prograra kéne kattintani a start menüben...
És végülis szívesen segíteném az ő munkáját, miért is ne, de hát hol kezdjek hozzá?Tudnátok ilyen láma-beavató oldalakat/pdf-eket/könyveket javasolni?

Üdv és köszi.
1. kérdés: milyen sql?

-
mckay
aktív tag
poweshellel betöltöd az xml-t és elmented indentálva
function Format-XML ([xml]$xml, $indent=2)
{
$StringWriter = New-Object System.IO.StringWriter
$XmlWriter = New-Object System.XMl.XmlTextWriter $StringWriter
$xmlWriter.Formatting = “indented”
$xmlWriter.Indentation = $Indent
$xml.WriteContentTo($XmlWriter)
$XmlWriter.Flush()
$StringWriter.Flush()
Write-Output $StringWriter.ToString()
}Sziasztok!
A legnagyobb tisztelettel szeretnék kérni pár linket, ha egyáltalán tudtok ilyesmit.
Meg kéne értenem, hogy mit és hogy csinálhatunk alap szinten egy SQL adatbázissal!
Tudom, ez most nagyon mókásan hangzik, hiszen ez egy külön szakma. És én semmit nem tudok belőle, soha nem is használtam, soha egy lekérdezést nem csináltam. Mert hardveres vagyok.

De most kitalálták a munkahelyemen, hogy apróbb (kinek apró?...) SQL-megoldást majd a "kisebbik rendszergazda" is meg tud csinálni. Pontosabban azt találták ki, hogy az eddig ilyeneket mókoló senior rendszergazda majd jól bevezeti a kisebbiket, azaz, és már a jövő héttől kezdheti az okosításomat.
Ez mind jó és szép, de nem vagyunk igazán olyan viszonyban, hogy megkérjem, hogy úgy mutasson alapinfókat, mintha csak Juliska lennék az X osztályról. Fel kéne készülnöm, hogy legalább az alapfogalmakkal, alapfogásokkal tisztában legyek az első találkozásunkra. Például hogy milyen prograra kéne kattintani a start menüben...
És végülis szívesen segíteném az ő munkáját, miért is ne, de hát hol kezdjek hozzá?Tudnátok ilyen láma-beavató oldalakat/pdf-eket/könyveket javasolni?

Üdv és köszi.
-
sztanozs
veterán
Csináltam egy XML változót, amit FOR XML PATH-tal töltöttem fel táblákból. Viszont le kéne tárolnom az eredményt stringbe, de az xml nem tartalmazz whitespaceket, egy sorban kapom vissza, ez így viszont olvashatatlan.
Hogyan lehetne megoldani, hogy megjelenjenek a sortörések és a tabok magában az xml-ben is? Query resultsban persze formázottan jelennek meg az adatok, de gondolom ezt a management studio csinálja meg.
B terv, hogy replace-szel én belerakom, de hátha van valami elegánsabb megoldás...
poweshellel betöltöd az xml-t és elmented indentálva
function Format-XML ([xml]$xml, $indent=2)
{
$StringWriter = New-Object System.IO.StringWriter
$XmlWriter = New-Object System.XMl.XmlTextWriter $StringWriter
$xmlWriter.Formatting = “indented”
$xmlWriter.Indentation = $Indent
$xml.WriteContentTo($XmlWriter)
$XmlWriter.Flush()
$StringWriter.Flush()
Write-Output $StringWriter.ToString()
} -
Ispy
nagyúr
Csináltam egy XML változót, amit FOR XML PATH-tal töltöttem fel táblákból. Viszont le kéne tárolnom az eredményt stringbe, de az xml nem tartalmazz whitespaceket, egy sorban kapom vissza, ez így viszont olvashatatlan.
Hogyan lehetne megoldani, hogy megjelenjenek a sortörések és a tabok magában az xml-ben is? Query resultsban persze formázottan jelennek meg az adatok, de gondolom ezt a management studio csinálja meg.
B terv, hogy replace-szel én belerakom, de hátha van valami elegánsabb megoldás...
Végül arra jutottam, hogy marad, ahogyan van, notepad++ xml pluginnel be lehet formázni, ha kell.
-
DS39
nagyúr
Sziasztok
Van egy táblám (mytable) ami a következő oszlopokat tartalmazza.
(ev,futa,helyezes,pilota,karosszeria).A következő lenne a kérdésem, meglehet e azt oldani hogy a következő lekérdezés után egy új oszlopba kiírja a csapattársának a nevét?
(A csapattárs ugyanazt a karosszeriat használja, csak nem egy sorban van az adatbázisban hanem alatta vagy felette)futam Pilota helyezes
Ausztralia Fernando ALONSO 12
Ausztria Fernando ALONSO kiesett
Belgium Fernando ALONSO kiesett
Brazil Fernando ALONSO kiesett
Europa Fernando ALONSO 14
Francia Fernando ALONSO 17
Japan Fernando ALONSO 11
Kanada Fernando ALONSO kiesett
Magyar Fernando ALONSO kiesettMeglehet.
Join-olod még egyszer ezt a táblát, a karosszériával összekapcsolva. + Feltétel, a pilóta nem azonos, az év és a helyszín viszont igen. -
Fundiego
tag
Sziasztok
Van egy táblám (mytable) ami a következő oszlopokat tartalmazza.
(ev,futa,helyezes,pilota,karosszeria).A következő lenne a kérdésem, meglehet e azt oldani hogy a következő lekérdezés után egy új oszlopba kiírja a csapattársának a nevét?
(A csapattárs ugyanazt a karosszeriat használja, csak nem egy sorban van az adatbázisban hanem alatta vagy felette)futam Pilota helyezes
Ausztralia Fernando ALONSO 12
Ausztria Fernando ALONSO kiesett
Belgium Fernando ALONSO kiesett
Brazil Fernando ALONSO kiesett
Europa Fernando ALONSO 14
Francia Fernando ALONSO 17
Japan Fernando ALONSO 11
Kanada Fernando ALONSO kiesett
Magyar Fernando ALONSO kiesett -
Ispy
nagyúr
Csináltam egy XML változót, amit FOR XML PATH-tal töltöttem fel táblákból. Viszont le kéne tárolnom az eredményt stringbe, de az xml nem tartalmazz whitespaceket, egy sorban kapom vissza, ez így viszont olvashatatlan.
Hogyan lehetne megoldani, hogy megjelenjenek a sortörések és a tabok magában az xml-ben is? Query resultsban persze formázottan jelennek meg az adatok, de gondolom ezt a management studio csinálja meg.
B terv, hogy replace-szel én belerakom, de hátha van valami elegánsabb megoldás...
-
Petya25
őstag
-
Jim74
nagyúr
-
velizare
nagyúr
Sziasztok!
Van egy tábla, amiben user login adatok vannak (azonosító, ipcim, login dátum, stb)
Egy userhez több login dátum is tartozhat, vagy egyáltalán nincs login dátuma (egyéb adatai miatt viszont szerepel).
Hogyan lehetne lekérdezni azokat a usereket, akik egyáltalán nem léptek be, vagy az utolsó login dátum 1 évnél régebbi?
Két feltételnek kellene teljesülnie, azonban az egyiknek group by vonzata van ( max(login_date)).
Előre is köszönöm a segítséget.

szerintem nem kell group by, ha select distinctet használsz a loginname-re, és a login_date szerint sorbarendezett táblából válogatsz.
-
Jim74
nagyúr
Sziasztok!
Van egy tábla, amiben user login adatok vannak (azonosító, ipcim, login dátum, stb)
Egy userhez több login dátum is tartozhat, vagy egyáltalán nincs login dátuma (egyéb adatai miatt viszont szerepel).
Hogyan lehetne lekérdezni azokat a usereket, akik egyáltalán nem léptek be, vagy az utolsó login dátum 1 évnél régebbi?
Két feltételnek kellene teljesülnie, azonban az egyiknek group by vonzata van ( max(login_date)).
Előre is köszönöm a segítséget.

Új hozzászólás Aktív témák
-
3600 - 3501
6041 - 6001 6000 - 5901 5900 - 5801 5800 - 5701 5700 - 5601 5600 - 5501 5500 - 5401 5400 - 5301 5300 - 5201 5200 - 5101 5100 - 5001 5000 - 4901 4900 - 4801 4800 - 4701 4700 - 4601 4600 - 4501 4500 - 4401 4400 - 4301 4300 - 4201 4200 - 4101 4100 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- SQL kérdések
- (kiemelt téma)
- BESZÁMÍTÁS! Gigabyte H510M i5 10400F 32GB DDR4 512GB SSD GTX 1070 8GB ZALMAN N4 Corsair 550W
- AKCIÓ! Gigabyte Gaming RTX 3060Ti 8GB videokártya garanciával hibátlan működéssel
- AKCIÓ! 2TB Kingston Fury Renegade NVMe SSD meghajtó garanciával hibátlan működéssel
- Keresünk iPhone 16/16e/16 Plus/16 Pro/16 Pro Max
- Apple iPhone 11 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Csak épp emberünk nem tudott jól kérdezni.


within group-al van szerintem probléma amit nem tud értelmezni






), ezért gondoltam, hogy akkor lehetne célirányosan menni, mert az eszközök megismerése legalább olyan fontos szerintem, mint maga az SQL nyelvé, ráadásul ezek nem 100%-ig kompatibilisek egymással, vannak azért eltérések.



