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

(#501) DopeBob


DopeBob
addikt

Sziasztok,

SQL Server Express 2005-el kapcsolatban lenne egy kérdésem. Adott egy TrendMicro porxy, aminek a futtatásához ez feltétel, ide kerülnének a logok. Telepítéskor feltelepít egy példányt, létrehozza az adatbázisát, eddig ok.

Viszont egy szöveges log ilyen hibaüzenetekkel van tele:

Error: [Microsoft][ODBC SQL Server Driver][SQL Server]Code page 852 is not supported by SQL Server

Teljesen egyértelmű mi a gond, viszont nem tudom, hogy tudok hozzáadni kódlapot :B

Nem foglalkoztam még vele, és ahogy nézegettem, csak parancssori admin része van.

Előre is köszönöm a segítséget.

MZ/X

(#502) lazlo8


lazlo8
tag

hello lenne egy sűrgős sql kérdésem.
adva van ms access 12 000 rekord . 2 oszlop van. egyik oszlopban 0-100ig vannak számok. másik oszlop futo sorszám.
erre kéne egy sql lekérdezést irnom ami 0-10 , 11--20. 21-30 , 31-40, 41-50,51-60 stb. csoportokba rendezi a 2. oszlopot és hozzá rendeli a futo sorszámot.
ötletek? mert nekem ez nem sikerül:(
tudom béna vok.
ezt találtam
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name ez jo lenne? csak a 0-10 es csoportosítást nemtudom h van..

(#503) ArchElf válasza lazlo8 (#502) üzenetére


ArchElf
addikt

SELECT A, Int(B/10)*10 & " - " & Int(B/10)*10+9
FROM table_name

Ez?

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]

(#504) attiati


attiati
veterán

Szerintetek egy 20gigás (vagy még nagyobb) adatbázis kezelésénél melyik alkatrész bővítése hoz látványos gyorsulást? Memóriát, vagy procit szereti? (exportálni, importálni, és beolvasni is szoktam az adatbázisból)

(#505) vakondka


vakondka
őstag

Kellene írnom egy sql-t ami termékek között keres az adatbázisban,
úgy hogy egy másik táblából rendeli hozzá a termék tulajdonságokat.
Ha csak 1 termék tulajdonság van akkor összejön a dolog egy left join-al,
viszont nem tudom hogy kellene összehozni, ha más termék tulajdonságok is vannak.

Ez jól kiírja nekem, ha van olyan termék ami piros.
A 2-es id jelenti azt hogy az adott tulajdonság amit keresek az szín és a szín piros,
vagyis megkapom azokat a termék id-ket amelyek pirosak:

SELECT pef.products_id, pef.products_extra_fields_value
FROM products p
LEFT JOIN products_to_products_extra_fields pef ON p.products_id = pef.products_id
WHERE pef.products_extra_fields_id =2
AND pef.products_extra_fields_value = 'piros'

Viszont egyszerre lehet maximum 4 termék tulajdonság is, 1-4 vannak hozzá tartozó értékek a products_extra_fields_id mezőben.

A kérdés hogy lehetne így többszörösen összefűzni ha esetleg mind a 4 adatot megadják ? :F

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

(#506) shev7 válasza vakondka (#505) üzenetére


shev7
veterán

meg 3szor hozzajoinolod a pef tablat, es mindegyikben szursz a megadott feltetelre.

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#507) vakondka válasza shev7 (#506) üzenetére


vakondka
őstag

idáig én is eljutottam, de nem tudom hová írjam a másik 3 joint és hogyan... :U

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

(#508) vakondka válasza vakondka (#507) üzenetére


vakondka
őstag

Már 2-vel sem műxik :(

SELECT pef.products_id, pef.products_extra_fields_value
FROM products p
LEFT JOIN products_to_products_extra_fields pef ON p.products_id = pef.products_id
WHERE pef.products_extra_fields_id =2
AND pef.products_extra_fields_value = 'piros'
LEFT JOIN products_to_products_extra_fields pef ON p.products_id = pef.products_id
WHERE pef.products_extra_fields_id =4
AND pef.products_extra_fields_value = '3'

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

(#509) Jester01 válasza vakondka (#508) üzenetére


Jester01
veterán

Szerintem elég lesz 1 join is.

SELECT pef.products_id
FROM products_to_products_extra_fields pef
LEFT JOIN products p ON p.products_id = pef.products_id
WHERE
(pef.products_extra_fields_id = 2 AND pef.products_extra_fields_value = 'piros') OR
(pef.products_extra_fields_id = 4 AND pef.products_extra_fields_value = '3')
GROUP BY pef.products_id
HAVING count(*) = 2

Jester

(#510) vakondka válasza Jester01 (#509) üzenetére


vakondka
őstag

Köszönöm szépen, nagyon szuper ! :R

Kaphatnék egy kicsi magyarázatot hozzá ? :U
Főleg ezt nem értem, hogy mi a szerepe benne és miért pont 2-est kell ideírni...

GROUP BY pef.products_id
HAVING count(*) = 2

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

(#511) Jester01 válasza vakondka (#510) üzenetére


Jester01
veterán

A join miatt termék-attribútum párokat kapsz, mégpedig annyit ahány egyezés volt az attribútum (tehát nem a termék!) szerint. Azt kell megnézni, hogy melyik termékhez van pontosan annyi sor ahány feltétel volt, ezért van a group by és a having. Ha lehagyod azt a részt akkor láthatod hogy néz ki a join eredménye. Ha több feltételed van, akkor azt a kettes számot ott át kell írni értelemszerűen.

Jester

(#512) attiati válasza attiati (#504) üzenetére


attiati
veterán

van tapasztalatotok?

(#513) DopeBob válasza DopeBob (#501) üzenetére


DopeBob
addikt

erre esetleg valaki? :B

MZ/X

(#514) ArchElf válasza DopeBob (#513) üzenetére


ArchElf
addikt

Lehet, hogy nem jó a rendszered default kódlapja (852 - Latin 2 DOS). Át kellene állítani default angolra (1252-re - West European Windows), esetleg 1250-re (Central European Windows).

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]

(#515) Donee


Donee
csendes tag

Sziasztok!

Lenne egy kérdésem:
Van rengeteg táblám, és meg kellene keresnem azokat a táblákat, amikben van egy adott nevű oszlop (pl. egyszerűség kedvéért table_name).

Milyen select-vel lehet ez? :F Esetleg oracle-ben?

(#516) Donee válasza Donee (#515) üzenetére


Donee
csendes tag

Na, már nem aktuális. :)

(#517) vakondka


vakondka
őstag

Az lenne az én nagy kérdésem, hogy a php-mysql páros mennyi adatot tud tárolni, kezelni anélkül, hogy jelentősen lelassulna ? :F
A vevő adatbázisom már 10.000 rekordot tartalmaz a rendelési tételek, pedig közel 25.000-et.
Attól félek, nehogy valami baj legyen a közeljövőben... :U

Ui: természetesen normális fizetős szerveren fut a weblap.

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

(#518) shev7 válasza vakondka (#517) üzenetére


shev7
veterán

a kozeljovoben nem lesz. Azert ennel nagyobb adatbazisok is mukodnek mysql alatt.

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#519) tildy


tildy
nagyúr

postgresben hogy lehet dátumra likeolni? ahogy megszoktam mysql alatt, úgy itt nem működik:(

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#520) rum-cajsz válasza tildy (#519) üzenetére


rum-cajsz
őstag

nem tudom pontosan mit szeretnél, de megoldás lehet a date_trunc és a between is

date_trunc(text, timestamp)
pl:
date_trunc('day', timestamp '2001-02-16 20:38:40') ----> 2001-02-16 00:00:00

Az összes dátum függvényt itt találod:
Postgresql KK

[ Szerkesztve ]

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#521) mérienn23


mérienn23
csendes tag

Sziasztok!

Én is szeretnék egyet kérdezni,nagyon-nagyon hálás lennék,ha valaki segítene! :R :R :R

Van egy tábla,persze most kitalált:
két oszlopa van,név és állat.
a nevek:marci,béla,dia,orsi,ág
az alábbi állataik vannak,de pl.áginak két cicája is van és két soron szerepel,és marcinak pedig mindhárom állatkája van.

a kérdés,hogy hány olyan ember van:
-akinek csak kutyája van
-akinek csak cicája van
-akinek csak papagája van,
-akinek van cicája és kutyája,
-akinek van cicája és papagája,
-akinek van kutyája és papagája,
-akinek van mindhárom állatkája?

nev allat
marci kutya
marci cica
marci papagáj
béla papagáj
béla kutya
dia kutya
orsi papagáj
ági cica
ági cica

Szóval milyen lekérdezést lehet erre írni?
Arra is gondoltam,hogy már az is könnyebbség lenne,ha vmi mátrixos szerkezetet ki lehetne hozni belőle.

Köszönöm a segítséget előre is,nagyon remélem,hogy Ti tudjátok!

Üdv,
Mérienn23 :)) :))

[ Szerkesztve ]

(#522) mérienn23


mérienn23
csendes tag

valaki vállal egyébként magánórákat?sql-re gondolok,viccen kívűl.
érdekelne budapesten.

Köszi,
Üdv,
Mérienn :))

(#523) Lortech válasza mérienn23 (#521) üzenetére


Lortech
addikt

1,
select count(*) elso_valasz from
(select nev, count(allat) kutyak_szama from tabla where allat = 'kutya' group by nev) kutyak join
(select nev, count(allat) allatok_szama from tabla group by nev) allatok on kutyak.nev = allatok.nev
where allatok_szama = kutyak_szama

2,
select count(*) masodik_valasz from
(select nev, count(allat) kutyak_szama from tabla where allat = 'cica' group by nev) kutyak join
(select nev, count(allat) allatok_szama from tabla group by nev) allatok on kutyak.nev = allatok.nev
where allatok_szama = kutyak_szama

3,
select count(*) harmadik_valasz from
(select nev, count(allat) kutyak_szama from tabla where allat = 'papagáj' group by nev) kutyak join
(select nev, count(allat) allatok_szama from tabla group by nev) allatok on kutyak.nev = allatok.nev
where allatok_szama = kutyak_szama

4, select count(*) negyedik_valasz from (select distinct nev from tabla where nev in (select nev from tabla where allat = 'cica') and allat = 'kutya')

5, select count(*) otodik_valasz from (select distinct nev from tabla where nev in (select nev from tabla where allat = 'cica') and allat = 'papagáj')

6, select count(*) hatodik_valasz from (select distinct nev from tabla where nev in (select nev from tabla where allat = 'kutya') and allat = 'papagáj')

7, select count(*) from (select distinct nev from tabla where nev in (select nev from tabla where nev in (select nev from tabla where allat = 'cica') and allat = 'kutya') and allat = 'papagáj')

höhö, 3 sör után,
ja és sok sikert a tanárodnak.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#524) mérienn23


mérienn23
csendes tag

köszi szépen a segítéséget! :))

(#525) mérienn23


mérienn23
csendes tag

és még kérdezhetek egyet?

-hány olyan emberke van,akinek CSAK kutyája és cicája van?
-akinek CSAK kutyája és papagája van?
-akinek CSAK cicája és papagája van?

:R

(#526) Lortech válasza mérienn23 (#525) üzenetére


Lortech
addikt

csak kutya és cica:

select count(distinct nev) from tabla where
nev in (select distinct nev from tabla where nev in
(select distinct nev from tabla where allat = 'kutya') and allat = 'cica') and nev not in (select distinct nev from tabla where allat not in ('kutya','cica'))

a többi esetet rádbízom. :))

[ Szerkesztve ]

Thank you to god for making me an atheist

(#527) mérienn23


mérienn23
csendes tag

fúú,köszi a gyors választ,nagyon rendi vagy :))
és képzeld,én is erre tippeltem magamtól :)

(#528) mérienn23


mérienn23
csendes tag

nevek kutya cica papagáj
marci i i i
béla i i
dia i
orsi i
ági i

ilyet tudunk csinálni amúgy?
mátrixot?
nem tudom,hogy látszik-e normálisan a formátum!?
vagyis az oszlopnevek legyenek az állatnevek,és a sorok,pedig az embernevek és jelöljük mondjuk i-vel,hogy kinek milyen állata van.

:R

aha,gondoltam,hogy fog jól látszani a formátum,de biztos tudod,mire gondolok.

[ Szerkesztve ]

(#529) Lortech válasza mérienn23 (#528) üzenetére


Lortech
addikt

Ez nem lekérdezés, hanem egy másfajta adatreprezentáció ugyanannak, vagy mi a kérdés? Az előző táblából kiindulva olyan lekérdezést gyártani ami ezt adja? Nehéz elképzelni, főleg általánosan.

Thank you to god for making me an atheist

(#530) mérienn23 válasza Lortech (#529) üzenetére


mérienn23
csendes tag

igen:"olyan lekérdezést gyártani ami ezt adja"

(#531) s7or4x


s7or4x
csendes tag

Üdv!

Lenne egy keres-cserél kérdésem.

UPDATE tablanev SET mezo = REPLACE( mezo, '33', '1' )

Most ugye ez a sorozat lecseréli az adott mezőben az összes 33-as számot 1-re.

A kérdésem, hogy írjam meg, hogy az összes számot cserélje 1-re?

Azaz:

UPDATE tablanev SET mezo = REPLACE( mezo, 'összes szám', '1' )

Valami ilyesmire lenne szükségem.

Vagy van olyan program amivel végrehajtható a keres-cserél egy mezőn belül?

Vagy esetleg hogy kéne php-val megoldani?

Több mint 1,000 soron kéne cserélni ezért kéne egy egyszerű megoldás.

Köszönöm!

(#532) shev7 válasza s7or4x (#531) üzenetére


shev7
veterán

regexp-pel konnyu, de ahhoz tudni kene pontosan mi a szerver, es milyen modon tamogatja a regexp-eket.

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#533) s7or4x


s7or4x
csendes tag

Üdv!

Már sikerült megoldanom így:

update tablanev set mezo = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
mezo ,'1','1'),'2','1'),'3','1') ,'4','1'),'5','1'),'6','1') ,'7','1'),'8','1'),'9','1'),'0','1');

Így úgye ami mondjuk 3456 volt az 1111 lett ezután tovább cseréltem.

update tablanev set mezo = REPLACE(
mezo ,'11','1');

update tablanev set mezo = REPLACE(
mezo ,'111','1');

update tablanev set mezo = REPLACE(
mezo ,'1111','1');

Kicsit primitív :D

De végül is így minden hol sikerült az értéket 1-re állítanom. :)

(#534) cucka válasza s7or4x (#531) üzenetére


cucka
addikt

MySQL támogatja a reguláris kifejezéseket, de valószínűleg más, elterjedt adatbázisok szintén. Nézz utána. Komolyan, legyél már annyira igényes legalább magaddal szemben, hogy nem elégszel meg ilyen hányadék megoldásokkal, mint amit mutattál.

Vagy esetleg hogy kéne php-val megoldani?
Mysql-re:
//kapcsolodsz az adatbazishoz
$res=mysql_query("select id, mezo from tablanev order by id asc");
while ($row=mysql_fetch_assoc($res)){
mysql_query("update tablanev set mezo='".str_repeat('1',strlen($row['mezo'])).'" where id='{$row['id']}'";
}

[ Szerkesztve ]

(#535) cucka válasza cucka (#534) üzenetére


cucka
addikt

Közben beugrott, hogy nincs szükség reguláris kifejezésekre, mysql-ben legalábbis.
update tablanev set mezo=repeat('1',length(mezo));

(#536) shev7 válasza cucka (#535) üzenetére


shev7
veterán

erre en is gondoltam, de nem tudtam, hogy csak szamok vannak abban a mezoben vagy mas is... de a 76 egymasba agyazott replacenel barmilyen megoldas jobb...

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#537) rebugra


rebugra
aktív tag

Sziasztok. A helyzet a következő. Van egy joomla oldalam, amit megszüntettem, lementettem a mysql adatbázisát (exportlással). Vettem új domaint, feltelepítettem a joomolát, ugye az létre hozott egy új adatbázist. Azt is lementettem. Szóval van egy régi, és egy új adatbázisom. Na most a kérdés: Hogy lehet összehasonlítani a kettőt hogy mi hiányzik az újból? Avagy ha össze másolom őket, és az FTP-n is megmarad a könyvtár struktúra, akkor van rá esély, hogy vissza nyerjem a régi oldalam formáját? Azaz ne kelljen begépelni újra mindent (képek, cikkek, stb...)

═════════════ --==[ FinestMedia Werbetechniker ]==-- ═══════════

(#538) rum-cajsz válasza rebugra (#537) üzenetére


rum-cajsz
őstag

Sajnos nem tudom hogy lehet összehasonlítani MYSQL adatbázis struktúrákat, de ha a struktúrák egyeznek, de nem azonos a joomla verziód, én nem próbálkoznék az adatbázis felülírásával, mert még ha el is indul az oldal kérdés, hogy nem írtál-e felül valamilyen rendszerbeállítást, ami az adatbázison belül tárolódik.
Én inkább egy konverzióval próbálkoznék a helyedben.
Megkeresni melyik táblában tárolja a cikkeidet, és azokat insertel direkben beletenni a jelenlegi adatbázisba. (persze itt is figyelni kell az integritás megőrzésére, például az egyedi kulcsokra)

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#539) Apollo17hu


Apollo17hu
őstag

Hali!

Van egy táblám (t) két oszloppal (A és B).
Elvileg A és B között 1-1 kapcsolatnak kellene lennie. Ha valamely A érték ismétlődik, akkor a sorában a B is ismétlődik.
Kérdés: hogyan tudom kikeresni az eltérő B értékeket?

pl.: A - B

xxx - 11
xxy - 18
xxz - 202
yyx - 22
yyx - 22
zzz - 89
zzz - 81

zzx - 12

Tehát itt az A oszlopbeli "zzz" értékek mellett kétféle B oszlopbeli érték tartozik, pedig ugyanannak kéne lenniük. Az ilyen - hibás - értékeket szeretném lekérdezni. Hogyan tegyem?

(#540) Jester01 válasza Apollo17hu (#539) üzenetére


Jester01
veterán

SELECT A FROM t GROUP BY A HAVING COUNT(DISTINCT B) > 1

Ez persze az A értékeket adja meg, de innen gondolom már megy.

Jester

(#541) Apollo17hu válasza Jester01 (#540) üzenetére


Apollo17hu
őstag

A COUNT-os részre szintaktikai hibát kapok, biztos jó ez így? (DISTINCT nélkül működik, csak az kellene bele...)

(#542) eziskamu válasza Apollo17hu (#541) üzenetére


eziskamu
addikt

Ez se bizti, hogy jó, de próba szerencse
SELECT DISTINCT t.A, t.B FROM t, (SELECT t1.A AS A1, t1.B AS B1 FROM t t1 ) t2 WHERE t.A=t2.A1 AND t.B <> t2.B2

[ Szerkesztve ]

(#543) Apollo17hu válasza eziskamu (#542) üzenetére


Apollo17hu
őstag

Ez jónak tűnik, bár a végén valószínűleg elírtad (B2 helyett ugye B1 van)?

(#544) Jester01 válasza Apollo17hu (#541) üzenetére


Jester01
veterán

Hát mert nem mondtad milyen adatbázisod van ... mysql esetén működik, kipróbáltam.

Jester

(#545) Apollo17hu válasza Jester01 (#544) üzenetére


Apollo17hu
őstag

Kezdő vagyok, nem tudom még, mi a különbség sql és mysql között, de köszönöm a segítséget.

(#546) Apollo17hu válasza eziskamu (#542) üzenetére


Apollo17hu
őstag

Akkor ez úgy működik, hogy a DISTINCT segítségével az A és B oszlopokból kulcsot képezünk, aminek a sorait az eredeti tábla soraival hasonlítjuk össze?

És ha lenne egy C oszlop, aminek az elemeire egy sima WHERE szűrést kell még alkalmazni, akkor ez a szűrés mehet a teljes lekérdezés végére egy AND operátorral bekapcsolva?

(#547) eziskamu válasza Apollo17hu (#546) üzenetére


eziskamu
addikt

Igen B1 a végén. Hát ha olyan sorokat keresel amik megfelelnek az első feltétetlednek és még a C oszlop beli értékeik is megfelelnek valaminek, akkor AND valami :)

(#548) eziskamu válasza Apollo17hu (#545) üzenetére


eziskamu
addikt

De mégis milyen rendszeren/környezetben futtatod/ellenőrzöd a lekérdezést? Távoli eléresed van iskolai szerverhez? Asszem olyan, hogy csak SQL nincs, kis mértékben mindegyik gyártó eltér valamennyire az eredeti SQL-től (de hogy mi is az eredeti, mármint, hogy egy konkrét gyártó vezette-e be vagy szakértői csoportok hozták össze, őszintén nem tudom), valamint gyakran kibővítik például eljárásorientált programozási lehetőségekkel. Létrehozhatsz fügvényeket, eljárásokat, és tán még a triggerek is ide tartoznak, de ebben nem vagyok biztos, hova is sorolják hivatalosan.

[ Szerkesztve ]

(#549) Apollo17hu válasza eziskamu (#547) üzenetére


Apollo17hu
őstag

Neked is köszönöm a segítséget.

Végül a lekérdezés és az allekérdezés WHERE záradékába is beleírtam a feltételt. Ha kihagyom az allekérdezésből, úgy hibásan kidob olyan eltéréseket is, aminek nem kéne szerepelnie. Remélem, jól csináltam. Valahogy így néz ki tehát:

SELECT DISTINCT t.A, t.B, t.C
FROM t, (SELECT t1.A AS A1, t1.B AS B1, t1.C AS C1
FROM t t1
WHERE t1.C IN (1, 2)) t2
WHERE t.A = t2.A1 AND
t.B <> t2.B1 AND
t.C IN (1, 2)

(#550) Apollo17hu válasza eziskamu (#548) üzenetére


Apollo17hu
őstag

Igazából munkához kell, egy bonyolultabb lekérdezést egyszerűsítettem erre a problémára. Mint írtam, nem vagyok járatos a témában, ehhez hasonló problémával még nem találkoztam. Azért remélem, menet közben belerázódom, és sokat tanulok az ilyen megoldásokból.

Itthonról próbálgattam most MS Access-ben. Munkahelyen PL/SQL-ben dolgozunk.

Útvonal

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