Köszönöm a választ. Akkor marad az Excel bűvészkedés.
#tarcsad
Köszönöm a választ. Akkor marad az Excel bűvészkedés.
#tarcsad
Tulajdonképpen ha van string összefűzésre aggregáló függvény akkor meg lehet oldani egy GROUP BY kitétellel. Nem mondtad milyen adatbázis, mysql-ben van ilyen GROUP_CONCAT néven. MS SQL-ben és Oracle alatt is lehet rá workaroundot csinálni gugli szerint. Úgy látszik kicsit elhamarkodottan állítottam, hogy nem lehet.
Jester
A segítségeteket szeretném kérni. PL/SQL függvényt kellene írnom, ami egy paramétert kap és megnézi, hogy egy adott tábla mely sorában szerepel ez az érték és visszaad egy másik értéket abból a sorból.
negyzet tábla:
szamok negyzetek
1..............1
2..............4
3..............9
CREATE OR REPLACE FUNCTION szam(num number) RETURN number IS
temp NUMBER(6);
BEGIN
temp := (select negyzetek from negyzet
where szamok = num);
return(temp);
END;
/
SELECT szam(3) FROM dual;
Ez ugye nem jó, hibát ad, holott 9-et kéne vissza adnia. Előre is köszönöm.
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
Megválaszolom magamnak:
BEGIN
SELECT negyzetek INTO temp
FROM negyzet
WHERE szamok = num;
END;
/
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
Sziasztok,
Olyan lekérdezési lehetőség van, hogy mondjuk nekem az utolsó X értékre van szükségem arra szűrjön?
Az az nekem pl.: top 100 parancs forditottjára lenne szükségem.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
a rendezes megforditasa nem jo?
Bocsika azt hogyan kell?
Kezdő vagyok
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Létezik olyan a (mysql-ben) INSERT ami egyben SELECT is ?
A megoldandó probléma a következő:
adott egy tábla aminek products_description a neve
ebből le kellene kérdezni minden sort ahol a language_id=4
utána ennek az eredményét újra beszúrni a táblába, de úgy hogy minden új sornál a language_id az 5 legyen
Meg lehet ezt valósítani mysql-ben, vagy írjak rá php progit ?
https://toptarget.hu - Online Marketing Ügynökség
mi az eredeti lekerdezes? igy vaktaban nem igen tudok mondani csak annyit, hogy ha valami szerint rendezel a lekerezesnel, akkor annak iranya megfordithato, s akkor a top 100 lesz az, ami egyebkent az utolso 100 lenne
pl.:
-- 100 legmagasabb fizetessel rendelkezo alkalmazott (csokkeno rendezes es ez elso 100-at valasztjuk)
select * from alkalmazottak order by fizetes DESC limit 100;
-- 100 legkisebb fizetessel rendelkezo alkalmazott (novekvo rendezes es az elso 100-at valasztjuk)
select * from alkalmazottak order by fizetes ASC limit 100;
[ Szerkesztve ]
hozz letre egy uj tabat (temp_tabla), melynek szerkezete megegyezik a product_description tablaeval
-- ideiglenes tabla kiuritese, hatha volt benne adat korabban
truncate table temp_tabla;
-- 4-es language_id-ju sorok lekerdezese a product_description tablabol es beillesztese a temp_tabla tablaba
insert into temp_tabla select * from product_description where language_id = 4;
-- temp_tabla-ban a language_id-k atallitasa 5-re
update temp_tabla set language id = 5;
-- lekerdezes a temp+_tabla tablabol es beillesztese a product_description tablaba
insert into product_description select * from temp_tabla;
Pusztán elméletileg kérdeztem.
Igen, ha vmi szerint rendezem akkor már tudom szűrni.
Azért kössz
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Sziasztok,
Van a következő lekérdezésem:
SELECT t.id, t.unitid, t.name, t.jigid, t.creationtime, t.status, mf.name, mf.failurecode, mf.value, mf.hilim, mf.lolim,
mf.status
FROM ffTest t
left join ffserialnumber sn on sn.unitid=t.unitid
left join ffmeasurementdetailfail mf on mf.testid=t.id
left join ffmeasurementdetailpass mp on mp.testid=t.id
where
t.creationtime between '2009-05-18 06:00:00' and '2009-05-19 06:00:00'
and t.description='RF Test'
and t.status='Failed'
and mf.status='Failed'
order by 2
Eredmény:
id unitid name jig creationtime status name failurecode value hilim lolim status
20026011 2500706 RF Test 3 2009.05.18 15:25 Failed T3 AGC +7 T3 AGC +7 -29 -62 -92 Failed
20021204 2500819 RF Test 3 2009.05.18 6:57 Failed QAM AGC QAM AGC -10 25 -5 Failed
20021231 2503154 RF Test 4 2009.05.18 7:01 Failed Tuner 1st IF Center Frequency Tuner 1st IF Center Frequency -1 1342 1098 Failed
És nekem csak az kellene ahol a unitid kétszer fordul elő.
Hogyan tudnám szűkíteni a keresést?
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
hogy erted, hogy "a unitid ketszer fordul elo"?
A kapott eredményeben többször előfordul ugyanaz az unitid
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
group by unitid having count(*) > 1
Jester
Köszi szépen a segítséget !
Először nem működött, de aztán rájöttem, hogy én szúrtam el...
Van valami egyszerű módszer arra, hogy saját tárhelyen belül egyik adatbázis bizonyos adattábláját átmásoljam egy másik adatbázisba ?
Az a baj, hogy elkezdtem írni egy ilyen scriptet php-mysql-ben, de nagyon hosszúra sikeredett és állandóan elszáll timeout-al mert sok rekord van (és 64 tábla).
Elég lenne egy alapötlet, vagy egy link is...
Előre is köszi !
https://toptarget.hu - Online Marketing Ügynökség
hasonloan az elozohoz:
1: letrehozod a masik adatbazisban az azonos szerkezetu tablat
2: insert into ujadatbazis.ujtabla select * from regiadatbazis.regitabla;
3: esetleg drop regiadatbazis.regitabla;
Adatbáziskezelőben export/import?
Aki hülye, haljon meg!
Igen ez phpmyadminban biztosan tökéletes (meg ott van másolás menüpont is), de nekem php-val kellene megoldanom, mert sok (64) tábla van, 3 adatbázison kell megcsináljam egyszerre és nem szeretném egyesével végigkattintgatni...
Ott meg muszáj adatbázist kiválasztani a query előtt...vagy rosszul tudok valamit ?
mármint ez kötött, nem ?
$db="adatbazis1";
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db($db, $conn);
mysql_query($sql, $conn);
mysql_close($conn);
szóval csak azt nem értem, hogyha kiválasztottam az adatbazis1-et, akkor hogy tudok írni adatbazis2-be ? vagy ez műxik tényleg, csak én nem tudtam ezt eddig ?
Bocs az értetlenségemért...
[ Szerkesztve ]
https://toptarget.hu - Online Marketing Ügynökség
Még nem használtam így, de ha minden igaz, akkor amennyiben a felhasználó rendelkezik a megfelelő jogokkal mindkét adatbázishoz, akkor elhagyhatod a mysql_select_db-t, és elég csak a queryben megadnod, hogy melyik tábla melyik adatbázisban található az adatbázis.tábla formátumot használva.
Aki hülye, haljon meg!
1. Ha egyszerűen csak át akarod pakolni az adatokat, akkor használd a phpmyadmin beépített export/import funkcióját. (Amennyiben nem túl nagy az adatbázis az import-hoz)
2. Ha feltétlenül programot akarsz rá írni, akkor jó tudni, hogy egy táblára úgy is hivatkozhatsz, hogy adatbázisnév.táblanév. Ekkor ugye nem kell a mysql_select_db, mert anélkül is meg fogja találni az adatbázis szerver a táblákat.
A másik lehetőség, hogy két adatbázis kapcsolattal oldod meg a problémát, ez pl. sokkal rugalmasabb, mert akár két teljesen különböző adatbázis szerverrel is működik a dolog..
Beraktam programba és hibátlanul megy, köszi a tippet !
Tiszta hülyeség, mert tudtam, hogy lehet rá így hivatkozni, de azt hittem, hogy csak a phpmyadminból lehet így, mert a php-nál kötelező adatbázist választani...hát most kiderült hogy nem éppen így van...megint okosabb lettem
https://toptarget.hu - Online Marketing Ügynökség
Access- ben egy crosstab queryvel szerintem.
Stay up Stay humble Ride hard Get stoked
segítséget kérek mer lassan feladom!
Ms acces van 3 oszlop oszlop1 BMW3, BMW5 BMW6 oszlop 2 akcio -10% 20% oszlop 3 érvnyes 08 jan1 09 jan2 hogy lehetne lekérdezni h szerepeljen benne a ami nem változott ill ami változott de abbol csak a legujjab??
Bmw 3 10% 08jan1
BMw3 -20% 09jan5
Bmw5 22% 06jan3
bmw 6 55% 09jan4
Tehát olyan lekérdezés kellene amibe szerepel a bmw 5,6 ill a frisseb BMw 3 (-20% érvényes 09jan5)(legelső sor nemkell
[ Szerkesztve ]
Két query-vel:
Q1
SELECT T1.Field1, Max(T1.Field3) AS Field3
FROM T1
GROUP BY T1.Field1;
Q2
SELECT T1.Field1, T1.Field2, T1.Field3
FROM Q1 INNER JOIN T1 ON (Q1.Field3 = T1.Field3) AND (Q1.Field1 = T1.Field1);
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]
Sziasztok!
Olyan kérdésem lenne, hogy adott egy Windows 2003 szerver MS SQL szerver 2000-el. A feladat annyi lenne, hogy ezt az SQL-t át kéne vinni egy másik 2003 szerver-re. Van e olyan megoldás, hogy ingyenes monjuk SQL express szerverrel menjen mert maga az adatbázis nincs 500mega sem? És ha igen tudtok e segíteni, mert én most feltettem egy MS 2008 SQL szervert, de valahogy nem igazodok ki rajta nekem csak annyi kellene, hogy a kimentett adatbázisok fussanak az új szerveren és kész.
Tudnátok segíteni ebben, mert az a 2000 és a 2008 közt igen sok különbséget vélek felfedezni...
Előre is köszi mindenkinek!
A tudás mindenkié!!!
Sziasztok!
Közben nagyon sokat okosodtam hála google.com barátunknak. Akit érdekel, hogy hogy csináltam írjatok csak és utbaigazítok mindenkit. Google- segíségével ment is a dolog kb 20 perc alatt átvittem 10 adatbázist. A másolás tovább tartott..
A tudás mindenkié!!!
Sziasztok!
Sajnos nem nagyon tudok egyről a kettőre jutni a google-el sem már. Az lenne a probléma, hogy adott egy egyedi fejlesztésű program aminek az sql adatbázisát hordozgattam jobbra balra. Van egy kezelő szerve amit úgy lehet elérni, hogy ODBC szolgáltatásoknál hozzáadom az sql szervert a megfelelő autentikációval majd meghívja az accest. Teszt esetén mikor bekonfolom a ODBC szervert akkor a végén azt mondja, hogy a csatlakozás létrejött teszt alapon belépett, de mikor szeretném a programot indítani akkor ODBC hibára utalva azaz ODBC driver re hivatkozva nem enged csatlakozni. Lehet ez azért mert MS SQL2008 szervert használok vagy csak simán a programnak nem teljesül a kritériuma?
Vagyis csak azért mondtam el mindezt mert fogalmam sincs, hogy milyen úton lehetne elindulni. Abban tudnátok segíteni, hogy az ODBC tulajdonképp mire is használatos, mert ah ezt megtudom akkor kicsit lehet közelebb jutok a megoldáshoz. Vagy még az jutott eszembe, hogy lehetséges, hogy az adatbázissal van a baj?
Előre is köszönöm mindenkinek a segítséget!
Retes
A tudás mindenkié!!!
Szevasz
ODBC-vel belinkelt táblákról van szó vagy runtime kapcsolódik?
Ha az első akkor linkeld újra vagy frissitsd be a linket.
Nézd meg hogy a linkelt táblát tudod e olvasni.
Ugyanaz az adatbázis és a server neve is ?
Jogosultságok ? Ha runtime kapcsolódik akkor pl Usernam :sa és a jelszó ugyanaz kell legyen.
Stay up Stay humble Ride hard Get stoked
Az a baj, hogy ennyire nem értek hozzá, de szerintem nem run time. Ez egy egyedi fejlesztéső program amit az anyavállalat készített és azt az instrukciót adták, hogy amikor szervert váltok akkor arra kell figylnem, hogy az adatbázis átmenjen, és a fileszervr utána minden értelemszerűan fog menni. Az eredeti szerver esetén a bekonfig az egyszerűen megy, hozzáteszem, hogy belinkelt tábláról lehet szó. AZ ODBC konfig esetén local még a teszt is megy, de ha másik gépról próbálkozom már nem is jutok el a tasztig. MI lehet az összefüggés, esetleg az SQL Express az ami megzavarja?
A tudás mindenkié!!!
Tűzfal? kikapcs vagy állitsd be.
Linkelni tudsz táblát az sql serverről?
Stay up Stay humble Ride hard Get stoked
Tűzfal ezen a gépen nincs még csak vírusírtó sem. Tudnál segíteni abban, hogy hagyan tudok linkelni? Könnyen meg lehet, hogy ez a gond...
A tudás mindenkié!!!
Milyen alapú programot használsz?
Linkelni pl access-ben tudsz.
Stay up Stay humble Ride hard Get stoked
Szia,
Bocsi, hogy csak most, de nem tudtam eddig írni. Hát a baj az annyi, hogy amikor elindul akkor is egy access-t hív meg és abban ühyködik. És a program el is indeul, de ODBC kapcsolódási hábát mutat annak ellenére, hogy egy sql server 2000hez meg azonnal csatlakozik, így hát feltételezem, hogy az új szerevern van valami amiért ez nem megy. Kerestem ODBC driver a 2008-2005 SQL Serverhez, de nem nagyon találtam...
Nem tudom hol lenne jó keresni a hibát. Aki meg a programot csinálta egy német srácc és most épp 3 gétig nem lesz elérhető mert nyaral...
A tudás mindenkié!!!
Sziasztok,
Az alábbi problémával kapcsolatban kérném a segítségeteket:
Van egy 'rendelesek' tábla a következő mezőkkel:
rendeles_id
ügyfel_id
kezbesitesi_cim_id
rendeles_dte
Azon rendelések azonosítóit és dátumait szeretném leválogatni, amelyekre igaz, hogy a hozzájuk tartozó ügyfél legalább 2 különböző címre rendelt.
Azaz ha "A" ügyfélnek van 73 db rendelése, de mind azonos kiszállítási címmel szerepel, akkor ne kerüljön be a leválogatásba a rendeléseinek azonosítója, ha "B" cégnek van 2 rendelése, amelyeknél a kiszállítási cím eltérő, akkor mindkét rendelési id kerüljön be, ha pedig "C" cégnek van 81 azonos címre és 1 db eltérő címre rögzített megrendelése, akkor szintén mind belekerüljön.
Előre is köszönöm!
Ha minden igaz ennek azt kell kidobnia:
SELECT rendeles_id, ugyfel_id, rendeles_dte, count(DISTINCT kezbesitesi_cim_id) as darab FROM rendelesek
GROUP BY ugyfel_id HAVING darab>=2
[ Szerkesztve ]
- http://pazsitz.hu -
Köszönöm!
rendeles tábla:
azonosito=a rendelés azonosítója
termek_id=a termék idja
darab=hányat rendeltek
pl
xyz | 26 | 2
xyz | 17 | 1
abc | 26 | 5
hogy kapom meg a 2 legtöbbet rendelt terméket? ugye össze kéne adogatni a rendelt darabszámot termékenként aztán a 2 legnagyobbat megkeresni de nekem ez már bonyolult
SELECT termek_id FROM tabla GROUP BY termek_id ORDER BY sum(darab) DESC LIMIT 0, 2
ha jol ertettem az azonosito itt nem jatszik szerepet, akkor igy kb jo lesz
Nem vagyok egoista, csak uborkagyalu!
köszi megpróba
Üdv!
Segítség kellene: Adott egy Vista gép. Telepítettem egy Iktató programot Microsoft SQL Server 2005 + Iktató-val. Ez tökéletesen működik. Kellene egy mésik programot is telepítenem aminek szintén szüksége van az SQL serverre, a telepítés során a következő hibaüzenetet kapom:
Run-time error '-2147467259 (80004005) [DBNETLIB][Connection Open (connect().] Az SQL Server nem létezik, vagy a hozzáférés megtagadva.
Én úgy látom, hogy az SQL Server fut, és rendszergazdaként próbálom a telepítést.
A Jótanácsokat megköszönném!
Sziasztok!
SQL téren nagyon kezdő vagyok, ezért a segítségetek kérném. Van két táblám(a mezőneveket hirtelen így fejből nem tudom sajnos). A táblák tartalma folyamatosan változik. Hogyan tudom összehasonlítani a két tábla tartalmát úgy, hogy kiírja nekem a csak a külnbségeket. Tehát ha pl az A táblába bekerült egy új rekord akkor csak azt írja ki, ha pl csak a B táblába került be egy új rekord akkor csak azt írja ki? Tehát nekem tulajdonképpen csak azok a rekordok kellenek amik nem egyeznek meg. Az A táblában egy mezővel több van mint a B-ben. Én az except parancsot próbáltam használni,de nem igazán jött össze.
Legutoljára ezt hasnáltam, de ez mindent visszaadot csak azt nem ami kellett volna
select 'table1' as tblName, * from
(select * from table1
except
select * from table2) x
union all
select 'table2' as tblName, * from
(select * from table2
except select *
from table1) x
Tudja valaki hogy nézhet ki a script?
Előre is köszönöm!
kampi
Én még csak most járok tanfolyamra de 2 select-tel csinálnám:
select * from a
where not exists (select * from b where a.mezo1=b.mezo1 and a.mezo2=b.mezo2....)
majd ugyanez b-vel
select * from b
where not exists (select * from a where a.mezo1=b.mezo1 and a.mezo2=b.mezo2....)
ha van egy kulcs, ami alapján tudsz hasonlítani, akkor értelemszerűen csak 1 mezőt kell vizsgálni.
Yo.
Megkérdezlek titeket, hátha tudtok segíteni.
Szóval lenne egy access adatbázis. Azon belül 4 tábla. Eléggé speciálisak az igények (az információk különböző beérkezése miatt), így nem lehetett a mostani állapotnál tovább egyszerűsíteni úgy érzem. De a lényeg:
Vannak berendezések, azokban alkatrészek, és ez az egész gépek szerint csoportosítva. A feladatok többsége kész, ám egy még megoldásra vár.
Szeretnénk mondjuk olyat, hogy kiválasztok egy berendezés csoportot, és azon belül az összes alkatrészt először pl törlöm, majd a megkapott valós információkkal feltöltöm.
Makróval, űrlapon oda már eljutottam, hogy legördülőlistából kiválasztom a kellő csoportot, majd gombra ciklus kikeresi mindet. És itt megáll a tudomány. Másik táblából a géphez tartozó összes rekordot hogy törlöm? Egyáltalán, sql szinten hogyan hivatkozok rá visual basic alól? Itt van a probléma részemről egyelőre.
Ha valaki tudja a megoldást, ne tartsa magában.
üdv
Sziasztok, van egy bosszantó problémám és a neten nem leltem semmit ezzel kapcsolatban.
Háttér:
szoftver: SQL Server Management Studio Express (tudjátok amit le lehet tölteni és installálni, korlátozott funcionalitás, zéró ár).
Egyetlen gépen fut a teljes cucc, szóval a Dell-emen fut a szerver is meg itt írom a query-ket is.
Statikus adatbázis tábláira írok lekérdezéseket (szal a táblák meg az adatbázis tartalma nem változik menet közben)
Probléma: írok query-ket amik eredményét szeretném más query-k FROM részében használni, de nem tudom hogy kell.
Access-ben ez nagyon egyszerű, a query-t úgyanúgy kell használni mintha egy tábla lenne, de MS Server alatt egyszerűen nem látom a query-ket.
Le tudom menteni a query-jeimet (nem az eredményként létrejövő adattáblát, hanem a query-t magát), de itt végetér a tudományom.
Meg tudnám csinálni, hogy 'SELECT ... INTO ujtabla' utasítással fizikailag is létrehozom a query-k eredményét, de sok query-m van és félek durván elszállna az adatbázis mérete.
Szintén be tudnám copy-paste-lni a query SQL kódját a FROM részbe (subquery), de az meg hibalehetőség, meg egy idő után bonyolult (pld ha 5-6 táblát meg query-t próbálok join-olni).
Access-ben is megpróbálhatnám, de ott nincs FULL OUTER JOIN, amire meg nagy nagy szükségem van (illetve van, csak bonyi a jobbos meg balos joinokat összefűzni).
Szóval a legjobb megoldás a query-k használata lenne, de nem tudom hogy kell.
Bármi ötletet hálásan fogadok!
Access SQL: Query = SQL: View
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]
Látom, hogy a te kung-fud, jobb mint az én kung fum, de nem értem mit mondasz...
A standard SQL szintakszis szerint VIEW-nak hívják azt, amit te az Access-ből QUERY-nek ismersz: http://en.wikipedia.org/wiki/View_%28database%29
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]
Szerintem a derived table, amit keresel: SELECT ... FROM (SELECT ...) AS x(..)
SELECT
e.EmployeeID, oe.NumOrders, oe.MaxDate, e.ReportsTo AS ManagerID,
om.NumOrders, om.MaxDate
FROM
Employees AS e
INNER JOIN
(SELECT EmployeeID, COUNT(*), MAX(OrderDate)
FROM Orders
GROUP BY EmployeeID) AS oe(EmployeeID, NumOrders, MaxDate)
ON e.EmployeeID = oe.EmployeeID
LEFT JOIN
(SELECT EmployeeID, COUNT(*), MAX(OrderDate)
FROM Orders
GROUP BY EmployeeID) AS om(EmployeeID, NumOrders, MaxDate)
ON e.ReportsTo = om.EmployeeID
További lehetőségek: Common Table Expressions