Hirdetés

2024. április 19., péntek

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)

Hozzászólások

(#601) martonx válasza Parameter (#600) üzenetére


martonx
veterán

Nem írtad, hogy milyen SQL-t használsz. Én most MSSQL-ről fogok beszélni. Dátumot a convert-el (cast-tal) tudsz legegyszerűbben formázni

pl. convert(varchar(10), Nevek.Date, 102)
aztán a varcharral már azt csinálsz amit akarsz.

Majd a kapott select-et sorba rendezve valami szerint (nemírtad le, hogy miből kell a második legnagyobb) belerakod egy fő selectbe. Ahol venném a top 2-t az a lselectből. És keresném a minimumát a valaminek.

Remélem érthető voltam.

Én kérek elnézést!

(#602) Parameter válasza martonx (#601) üzenetére


Parameter
csendes tag

OK. tisztázzuk, hogy Ilona dátumnál az van, hogy Nevek táblában
mm.dd(05.06) és Ertékek táblában yyyy.mon. dd. (1998.május 06.)

convert(varchar(10), Ertekek.Date, 102) = Nevek.Date

--így megtalálja a 05.06-ot az Értékek táblában és kidobja, hogy 1998. május 06. vagy 1999. május 06. stb...?
--na aztán ebből a halmazból ki kell választanom a második legnagyobb értéket!

Köszi!

(#603) martonx válasza Parameter (#602) üzenetére


martonx
veterán

convert(varchar(10), Ertekek.Date, 102)

ez a dátumodat átalakítja yyyy.mm.dd. formátumba, szöveggé. Ebből nyilván ki kell vágnod a hónapot és a napot. Elárulom a substring paranccsal tudod ezt megtenni :))

Így meg fogod kapni a halmazt. Ezt sorbarendezed dátumra, majd ebből top 2 -vel kiválasztod az első két legnagyobbat. A két legnagyobból pedig min-nel kiválasztod a kissebbiket.

És kész.

Én kérek elnézést!

(#604) Parameter válasza martonx (#603) üzenetére


Parameter
csendes tag

Yep, köszönöm martonx!
Megvan a dátumos halmaz, de ez a második legnagyobb nem megy... addig vagyok, hogy lekérdezem a 2 legnagyobbat, ebből hogy lehet egy sub-queryvel kiválasztani a minimumot???? :(((

SELECT TOP 2 Tábla1.Azonosító, Tábla1.Ertek
FROM Tábla1
ORDER BY Tábla1.Ertek desc;
-- a halmaznak a minimuma kell és tényleg kész!

(#605) martonx válasza Parameter (#604) üzenetére


martonx
veterán

Tessék:

SELECT TOP 2 Tábla1.Azonosító, min(Tábla1.Ertek)
FROM Tábla1
GROUP BY Tábla1.Azonosító

Én kérek elnézést!

(#606) Parameter válasza martonx (#605) üzenetére


Parameter
csendes tag

ezt próbáltam már, de ez csak a felső kettőt hozza le...
a csökkenő sorrend jó, de abból nem tudom kiválasztani a min értéket, access állandóan hibaablakot dob!

Szal még mindig az a kérdésem, hogy tudom kiválasztani egy táblából a 2. legnagyobb értéket!

Köszi! :DDD

(#607) martonx válasza Parameter (#606) üzenetére


martonx
veterán

Csakhogy az utolsó sor nem ORDER BY, hanem GROUP BY legyen.

Nem tudom kipróbálni, e miatt lusta vagyok Access példa adatbázist csinálni, de szerintem működnie kellene.

Én kérek elnézést!

(#608) Totu


Totu
csendes tag

Hali!

Megint jöttem kicsit agybajt hozni rátok.
A kérdés az, hogy hogyan lehet/kell többes mezőkkel relációkat létrehozni?

Megmutatom a példát, ami a dilemmát okozza, és azon magyarázom el, hogy mi vele a gondom.

PK: primary key (az egyértelműség kedvéért)
FK: foreign key (egyértelműség kedvéért)

model(id PK, desc, ...)
part(id PK, desc, defaultPN FK->pn.id)
pn(id PK, part FK->part.id)
modelpart(model FK->model.id, part FK-> part.id)

ez eddig egyszerű, mint a szög: vannak modellek, alkatrészek, egy alkatrész több modellhez lehet hozzárendelve, az alkatrészeknek vannak PN-jeik, és nekem kell az is, hogy melyik az aktuális PN, de ez nem olyan lényeges. a gond itt kezdődik(a fentiekhez hozzáadva):

modelevent(id PK, model FK->model.id, time, ...)
modeleventPN(modelevent FK->modelevent.id, pn FK->pn.id)

ez a reláció önmagában nem garantálja nekem, hogy nem tudok olyant PN-t beszúrni a modelevent PN-jeihez, ami nem szerepel a modelpartban.

hol lehet létrehozni a kötést, ami megmondja, hogy akkor szúrhatom be a megfelelő PN-t, ha a modelpartok között van olyan, aminél stimmel a model, és stimmel a PN-hez tartozó part?

erre muszáj check constraint-et rakni, vagy ügyes relációval lehetséges?

Remélem érthető voltam, és nem zagyváltam össze itt senkit.

cordiali saluti, Totu

(#609) Totu válasza Totu (#608) üzenetére


Totu
csendes tag

közben megválaszoltam magamnak a kérdésemet, szóval tárgytalan.
muszáj a check constraint.

cordiali saluti, Totu

(#610) nyunyu


nyunyu
félisten

Adott egy SQL Server 2008R2 alatt letrehozott adatbazis/tabla, amit at kene varazsolni SQL Server 2005 ala, mert a celgepen csak az van.

Hogyan lehet atvinni?

Probaltam mar a sajat gepemrol SQL Management Studio 2008R2-vel betallozni a 2005-os szervert, kivagott, hogy a szerver nem tamogatja a protokoll verziot, akar TCP/IP-re, akar named pipes-re allitottam a kapcsolatot.

Masik gepen levo SQL Management Studio 2005 persze "kiszolgalo nem talalhato"-val vag ki, hiszen nem tamogatja az ujabb SQL-t.

Multkor probaltam lebackupolni az adatbazist, hogy melohelyi SQL 2008-on visszaallitsam, annak meg az volt a baja, hogy ott sima 2008 van, nem R2. :(

CSV-be export, aztan import nem jatszik, mert 3 ora alatt sem sikerult ugy beallitanom az importot, hogy ne dobjon "nem lehet konvertalni az adatot" jellegu hibat :W

BTW, lehet ezzel a nyuves SQL Management Studio-val olyat csinalni, hogy a tabla osszes adatabol general egy futtathato SQL fajlt, ami egyesevel beinzertalja egy tablaba az adatokat?

InterBase/Firebird-hoz valo IBExpert progival lehetett ilyet csinalni...

SQL Management Studioban adatbazison jobb klikk/Script As../Insert INTO az csak a tabla fejlecet irja meg, adatokat persze nem teszi bele :W

[ Szerkesztve ]

Hello IT! Have you tried turning it off and on again?

(#611) nyunyu válasza nyunyu (#610) üzenetére


nyunyu
félisten

En lenni

Most jottem ra, hogy a gepemre felrakott Visual Studio 2008 feltett egy SQL Express 2005-ot, arra viszont siman be tudok jelentkezni az SQL Management Studio 2008R2-mmel, at is importaltam az adatot, SQLExpress 2005 alatt backup, celgepre atmasol, SQL2005 alatt siman restore. :DDD

Feleslegesen szivtam az adat attoltessel 6-7 orat :W

Mondjuk azt meg mindig rejtely, hogy a sajat gepen futo 9.0.4053-as SQLExpress 2005-re miert tud rakapcsolodni, mig a masik gepen futo 9.0.4053-as SQL 2005-re meg miert nem.

[ Szerkesztve ]

Hello IT! Have you tried turning it off and on again?

(#612) martonx válasza nyunyu (#610) üzenetére


martonx
veterán

Szia!

SMSS2008R2 simán kezeli az SQL 2005-öt, én is így használom a melóhelyen.
Lebackupolni is tudod 2008-at 2005-re, csak a backup options-nél be kell állítani a cél SQL formátumot (mondjuk 2005-re).

SMSS full telepítéskor kapsz egy SMO-t is, amivel tudsz komplett adatbázist scriptekké alakítani. Plusz van egy 3rd party ingyenes kiegészítő is ehhez, (szintén SMO-t használja, csak felhasználóbarátabb, bár szintén parancssoros) de nem jut eszembe a neve. Valahol codeplex-en megtalálod.

Remélem mindenre válaszoltam. :))

Én kérek elnézést!

(#613) nyunyu válasza martonx (#612) üzenetére


nyunyu
félisten

Backup/Options ablakon nem latok mas SQL-re mentesi lehetoseget. :(

Hello IT! Have you tried turning it off and on again?

(#614) martonx válasza nyunyu (#613) üzenetére


martonx
veterán

bocsi, rosszul mondtam neked nem a backup kell, hanem kettővel alatta a Generate Scripts.
Ott ha végig csinálod a varázslót, akkor:
1. be tudod választani, hogy az adatok is belekerüljenek a scriptekbe (mondjuk egy 10 gigás adatbázisnál nem túl szerencsés)
2. be tudod állítani a cél SQL szerver verzióját.

Én kérek elnézést!

(#615) nyunyu válasza martonx (#614) üzenetére


nyunyu
félisten

Ja, igy konnyu :DDD

Multkor anyazott egyik kollega, mert egyik ugyfelnel meg MSSQL 7 vagy 2000 futott, es azalatt nem volt ilyen lehetoseg :(

Hello IT! Have you tried turning it off and on again?

(#616) zolynet


zolynet
addikt

Adószám ellenőrző algoritmusa van vkinek? :F

Life is too short to stay stock!

(#617) RedSign válasza zolynet (#616) üzenetére


RedSign
tag

SQL-ben?

Mert egyébként a google elég sok találatot ad:
http://www.google.hu/url?sa=t&source=web&cd=1&ved=0CBcQFjAA&url=http%3A%2F%2Fdelphi.pernita.hu%2F3%2Findex.htm&rct=j&q=ad%C3%B3sz%C3%A1m%20ellen%C5%91rz%C5%91%20algoritmus&ei=HxcjTa77B8GEOqWquaUJ&usg=AFQjCNGor8Ja5OAWP-Nv4L7wrV6_EIWuXQ&sig2=3N6dBIl1uiQ0DP9QSDJWiA&cad=rja

http://www.google.hu/url?sa=t&source=web&cd=2&ved=0CB8QFjAB&url=http%3A%2F%2Fprohardver.hu%2Ftema%2Fadoszam_ellenorzo_algoritmus%2Fhsz_1-50.html&rct=j&q=ad%C3%B3sz%C3%A1m%20ellen%C5%91rz%C5%91%20algoritmus&ei=HxcjTa77B8GEOqWquaUJ&usg=AFQjCNHZuWYd7SXAJGi_1QX9Izbqn6NkKA&sig2=snjCYG4prgVumADbhOSgOQ&cad=rja

http://www.google.hu/url?sa=t&source=web&cd=3&ved=0CCoQFjAC&url=http%3A%2F%2Fwww.metacomp.hu%2FDok%2FFfb.htm&rct=j&q=ad%C3%B3sz%C3%A1m%20ellen%C5%91rz%C5%91%20algoritmus&ei=HxcjTa77B8GEOqWquaUJ&usg=AFQjCNFuU1jfOJKGUWvjUdksLaZhAYfl2g&sig2=m_YR9YXI_zKDlOtLw2GrVA&cad=rja

http://www.redsign.hu

(#618) zolynet válasza RedSign (#617) üzenetére


zolynet
addikt

sql-ben :K

Life is too short to stay stock!

(#619) vakondka


vakondka
őstag

Sziasztok,

Olyan mysql utasítás kellene nekem ami egy adott táblában egy mező értéke elé teszi a megadott karaktereket.
Tehát van egy products tábla és a products_model mező jelenlegi értéke elé kellene tenni 2 betűt (mindenhová ugyanazt)
Előre is köszi!

https://toptarget.hu - Online Marketing Ügynökség

(#620) PazsitZ válasza vakondka (#619) üzenetére


PazsitZ
addikt

UPDATE products SET products_model=CONCAT('pluszstring',products_model)

- http://pazsitz.hu -

(#621) vakondka válasza PazsitZ (#620) üzenetére


vakondka
őstag

Köszönöm szépen ! :R

https://toptarget.hu - Online Marketing Ügynökség

(#622) martonx válasza zolynet (#618) üzenetére


martonx
veterán

nem kell ehhez algoritmus sima regex megoldja. Kérdés, hogy milyen SQL?

where adoszam mezo like 'adoszamregex' és kész.

ez a like 'adoszamregex' nyilván SQL típus függő megoldás lesz. MSSQL nem nagyon támogatja a szabványos regex-et, ha bármilyen más SQL-t használsz, akkor nyert ügyed van. MSSQL esetén C#-ban írni kell hozzá első körben egy saját regex függvényt.

Én kérek elnézést!

(#623) Chris16


Chris16
csendes tag

Sziasztok!

Új vagyok az sql programozásban, eddig MS sql szerveren tanultam, de most mysql-en kell dolgoznom. Gondoltam, hogy nem lesz egyforma...még meg kell szoknom.

Azt szeretném, hogy a "felhasználók" táblába egy "vezetéknév", "utónév" sort szúrjon be. Ezt hogyan kell megcsinálni?

Chris

(#624) martonx válasza Chris16 (#623) üzenetére


martonx
veterán

ez a rész mondjuk pont egyforma MSSQL-lel, úgyhogy használd nyugodtan az eddigi tudásodat.

Én kérek elnézést!

(#625) n-tek


n-tek
aktív tag

Hello!
Új vagyok ebben az sql-es témában és ezért kérnék segítséget. Adatok mellé képet is szeretnék tárolni. Az a kérdésem lenne, hogy tegyem ezt? Használjam a mysql-t vagy az túlságosan leterheli? Köszönöm

Escape is Just the Begining

(#626) M.Úr válasza n-tek (#625) üzenetére


M.Úr
tag

Az sql-t alapvetően nem erre találták ki, de pl. a MS SharePoint így tárol képeket.
Én a fájlrendszerben tárolnám a képeket, és adatbázisban tárolnám az elérési utat.

(#627) RedSign válasza n-tek (#625) üzenetére


RedSign
tag

Szia!

Ahogy M.Úr is írta, a képeket inkább külön tárold és az elérési útvonalat az adatbázisban, mert nagyon leterheli a rendszert.

Üdv,
RedSign

[ Szerkesztve ]

http://www.redsign.hu

(#628) martonx válasza n-tek (#625) üzenetére


martonx
veterán

Szia!

Nyugodtan tárold a képeket adatbázisban. Akik az operációs rendszerre szavaznak, azoknak üzenem, hogy próbáljanak meg mondjuk egy dokumentum archiváló rendszer adatait fájl rendszerben tartani nagyvállalati környezetben (naponta pár ezer dokumentum belekerül).

Viszont ha az a célod, hogy van pár képed, és ezekre akarsz hivatkozni, akkor tényleg egyszerűbb azokat fájl rendszerben tartani, és sql-ben csak az útvonalukat eltárolni.

Én kérek elnézést!

(#629) Sk8erPeter válasza martonx (#628) üzenetére


Sk8erPeter
nagyúr

Ehhez kapcsolódva cucka itt ír a képek adatbázisban való tárolásáról: [link], [link]

Sk8erPeter

(#630) martonx válasza Sk8erPeter (#629) üzenetére


martonx
veterán

Pont ugyanezt írtam én is. :DD
Néha nem árt máshonnan is megerősítést kapni, hogy amit leírok, az tényleg helytálló.

Én kérek elnézést!

(#631) Sk8erPeter válasza martonx (#630) üzenetére


Sk8erPeter
nagyúr

Igen, de azért az is fontos szempont, amit az utóbbi hsz.-ben írt, hogy igen komoly adatforgalmat is generálhat, így kisebb erőforrásokkal és kapacitásokkal rendelkező rendszernél viszont nem biztos, hogy megéri.

Igazából én még pl. nem próbáltam, egyelőre nem is vágom, mi a módja a képek ilyen módon való eltárolásának adatbázisban, mert még nem néztem utána (bár gondolom nem lehet olyan hű de bonyolult), de nem is igazán volt még rá szükségem, meg elég kényelmesen kezelhető a fájlfeltöltés, az elérési utak lekérése, ráadásul általában a MySQL számára biztosított kapacitások jóval alacsonyabbak, mint a fájlrendszerszintűek.
Éppen ezért tehát - az erőforrások végessége, kapacitásbeli kérdések miatt, plusz azért, mert tulképpen semmivel sem kevésbé kényelmetlen - kezdésnek n-tek számára én személy szerint nem ajánlottam volna a képek ilyen módon való tárolását, nyilván ha most fog bele az SQL elsajátításába, akkor nem nagyvállalati környezetben fog fejlesztgetni, így elég gyorsan, már többszáz (vagy mérettől függően annál kevesebb) képnél is beleütközhet a szolgáltató által felállított MySQL-korlátokba.

Sk8erPeter

(#632) n-tek


n-tek
aktív tag

Köszönöm a válaszokat. A fájlrendszert alkalmazom. Egyszerűbbnek tűnik és a korlátaimat sem tudom.

Escape is Just the Begining

(#633) ArchElf válasza martonx (#628) üzenetére


ArchElf
addikt

Dokumentum archiválásra bőven jó a fájlrendszer: monolitikus tárolás fájlban, DB-ben offset, plusz fájlrendszerben tömörítés bekapcsolása, ha nem tömörített képeket vagy dokumentumokat tárolsz (tömörített pdf-ek, jpg/png, új office formátumok).
Ha nem csak archiválásra kell, hanem törlődhet is a tartalom, akkor jobb megoldás lehet az adatbázis.

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#634) bmwm3


bmwm3
tag

Sziasztok!

Van egy adatbázisom, amiből adatok kellene kinyernem, konvertálnom. Van egy memo mezője, amely minden sorban úgy kezdődik, hogy 'Rar!'. Gondolom, hogy simán valami rar fv-t meghívtak, mielőtt letárolták volna az adatot. Tudtok valamilyen függvényt, eljárást, bármit MS Sql-ben vagy Ora-ban, amivel ezt "unrar-olhatnám"?

Köszönöm! (az adatbázis elvileg valami foxpro-s, ha jól tudom, de be tudjuk tolni más db alá, most perpillanat MS alatt van)

[ Szerkesztve ]

(#635) martonx válasza bmwm3 (#634) üzenetére


martonx
veterán

nem tudok róla, hogy sql szinten ilyesmi létezne.

Én kérek elnézést!

(#636) ArchElf válasza bmwm3 (#634) üzenetére


ArchElf
addikt

xp_cmdshell - és tudsz külsős parancsokat hívni.
Oracle (szintén hasonló megoldás): link

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#637) KoczekaEG6 válasza Imrege (#1) üzenetére


KoczekaEG6
csendes tag

- téves -

[ Szerkesztve ]

(#638) ArchElf válasza KoczekaEG6 (#637) üzenetére


ArchElf
addikt

:DDD

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#639) lao ce válasza aton-hawk (#200) üzenetére


lao ce
aktív tag

lapozas problema.

[ Szerkesztve ]

nicht kompot

(#640) ArchElf válasza lao ce (#639) üzenetére


ArchElf
addikt

OMG, mi van ma itt :DDD

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#641) lao ce válasza ArchElf (#640) üzenetére


lao ce
aktív tag

nezd, neked 6 honappal es 2 nappal tobb idod volt hogy megszokd a forummotort. en meg tanulom! :)

nicht kompot

(#642) ArchElf válasza lao ce (#641) üzenetére


ArchElf
addikt

No para - velem is előfordult már :)
Amin mosolyogtam, hogy egy fórumban egy nap ketten is :D

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#643) Immy


Immy
őstag

Üdv

Egy alap problémába ütköztem amit sajnos egyedül nem tudok megoldani. :(

Sima egyszerű ubuntu10.10-re szeretnék postgreSQL-t felrakni.
root@bt:~#apt-get install postgresql python-psycopg2 python-sqlalchemy
root@bt:~#su passwd postgres
root@bt:~#su postgres
postgres@bt:/root$

Eddig mind szép és jó viszont amikor folytatnám a beállításokat:
sudo su postgres -c psql template1
Ezt a hibaüzenetet kapom: postgres is not in the sudoers file. This incident will be reported.
Ha kihagyom a "sudo"-t a parancs elől akkor pedig ezt az üzenetet:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Új felhasználó hozzáadása esetén:
ALTER USER postgres WITH PASSWORD 'posgres';
Ilyen hibaüzenet: Unknown id: ALTER

Van bárkinek is ötlete?

Immy

[ Szerkesztve ]

Apró: https://hardverapro.hu/aprok/hirdeto/immy/index.html

(#644) rt06 válasza Immy (#643) üzenetére


rt06
veterán

1: man su
2: /etc/init.d/postgresql start

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#645) dany27


dany27
őstag

hali
Adott egy tábla melyben az emberek bére található hogy tudom kilistázni azokat akik az átlag alatt keresnek?
Probáltam egy ilyent megjátszani:
SELECT dolgozok.nev
FROM dolgozok
WHERE dolgozok.fizetes>(SUM(dolgozok.fizetes)/COUNT(dolgozok.dolg_kod));

De nem szereti....

Előre is köszi!

(#646) j0k3r! válasza dany27 (#645) üzenetére


j0k3r!
senior tag

hello!

szerintem avg lesz az, amit te keresel.

SELECT dolgozok.nev
FROM dolgozok
WHERE dolgozok.fizetes<(SELECT AVG(dolgozok.fizetes) FROM dolgozok);

[ Szerkesztve ]

some men just wanna watch the world burn...

(#647) rt06 válasza dany27 (#645) üzenetére


rt06
veterán

subselect kell neked - amennyire tudom, egyszerubben nem oldhato meg

SELECT dolgozok.nev FROM dolgozok WHERE dolgozok.fizetes < (
SELECT AVG( dolgozok.fizetes ) FROM dolgozok
);

szerk.: javitas, mert a te kodod az atlag felettieket probalja lekerni

[ Szerkesztve ]

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#648) dany27 válasza rt06 (#647) üzenetére


dany27
őstag

kössz mindkettőtöknek!

(#649) martonx válasza rt06 (#647) üzenetére


martonx
veterán

Ez jó megoldás, csak nem hatékony, mert minden értéknél újra és újra ki kell számolni az átlagot.
Én kitenném egy változóba az átlagot, majd a változóval hasonlítgatnám össze.
Mondjuk ez már csak szőrszál hasogatás, de sokszor pont az ilyen apróságokon lehet futás perceket, órákat spórolni.

Én kérek elnézést!

(#650) PazsitZ válasza martonx (#649) üzenetére


PazsitZ
addikt

Az adatbázis szerver nem fogja minden egyes esetben újraszámolni.

- http://pazsitz.hu -

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.