Szabó Géza 0 biztos nem lesz. Ha arra gondolsz, itt télleg nem kapcsolta össze.
Igen, télleg az lenne. Viszont ha megszorítod az egészet egyetlen adott id-re, akkor nem is kell a group by.
[ Szerkesztve ]
Szabó Géza 0 biztos nem lesz. Ha arra gondolsz, itt télleg nem kapcsolta össze.
Igen, télleg az lenne. Viszont ha megszorítod az egészet egyetlen adott id-re, akkor nem is kell a group by.
[ Szerkesztve ]
Valóban nincs összekapcsolva, de szerintem nem fog hibás eredményt adni, mert a név úgy is a megfelelő ID-hez fog tartozni... De valóban elegánsabb...
köszönöm a hozzászólásokat és a segítséget.
[ Szerkesztve ]
Üdv!
Mostanában autodidakta módon probálgatom az SQL parancsokat, nagyjából mindent sikerült megoldani amit akartam - vagy találtam neten hozzá megoldást de most ez megfogott. Szóval a parancs amit akarok futtatni ez lenne:
SELECT * FROM `template`
WHERE `Quality` =2
AND `ItemL` BETWEEN 272 AND 305
AND `cl` =2 OR `cl` =4
Ha csak a Quality és a ItemL van benn csak akkor nincs semmi probléma, akkor azt adja ki amit kell, de ha bekerül a cl, akkor megkavarodik minden. A Quality adja a többi bejegyzést is (1től 5ig vannak benne minősitve, azokat kiadja), meg az ItemL is...
Mi lehet a probléma, mi szúrok el?
Köszönöm a segitséget!
Szerk.: Ha külön-külön irom a parancsokat (cl+ItemL vagy cl+Quality) akkor is "zavarodik", ergo tuti azzal van a baj.
[ Szerkesztve ]
--------------------------- Privátot privátba - Fórumtémát fórumba!! --------------------------- --------- I/DEBUG(3430): debuggerd committing suicide to free the zombie! ---------
Így próbáld:
SELECT * FROM `template`
WHERE `Quality` =2
AND `ItemL` BETWEEN 272 AND 305
AND (`cl` =2 OR `cl` =4)
ha jól értem, a zárójelezéssel van probléma: az or feltétel miatt nem érvényesülnek az and kapcsolatok.
Nagyon köszönöm mindkettőtöknek az extragyors segitséget, az lett amit akartam
Már csak egy Insert kell
[ Szerkesztve ]
--------------------------- Privátot privátba - Fórumtémát fórumba!! --------------------------- --------- I/DEBUG(3430): debuggerd committing suicide to free the zombie! ---------
Sziasztok.
PL/SQLben hogy lehet megvizsgálni azt hogy az lekérdezés egyik mezője tartalmazza e azadott szót.
És ugye az IF-nek két ága kellene hogy legyen
na ezt szemléltesd egy példával, hogy mit szeretnél
egyébként meg miért nem jó eleve úgy lekérdezni, hogy benne van a feltételben?
Egy ága is lehet.
A lekérdezés eredményének egyik mezője? Egyik, mint tetszőleges mezője vagy egyik, mint 1 adott mezője.
A lekérdezés eredményén (kurzor) végiggyalogolsz egy ciklussal, és a megfelelő mező(ke)t megvizsgálod instr függvénnyel.
Hatékonyabb lenne, ha eleve az sql tartalmazza a vizsgálatot a where-ben a like klózzal.
Nem tudom, hogy ezzel segítettem-e, mert 38 féleképpen lehet értelmezni a mondatodat, pontosítás kéne pont bemenet és elvárt végeredmény tekintetében.
Thank you to god for making me an atheist
Sziasztok!
Most kezdetem el foglalkozni a lekérdezésekkel.
Van egy egy tábla, x oszloppal. feltöltve betűkkel.
Azt szeretném lekérdezni,h pl mennyi a betű van a táblába. Egy oszlopba megy a dolog de az egész táblában nem(egyesével lekérdezni macerás). Illetve folytatásban úgy képzelném,h a végén kiírja, hogy pl a-ból ennyi, b-ből ennyi stb db van a táblában.
Tudnátok segíteni,h miként kell ezt megírni?
Előre is köszönöm!
Nekem8
Szia!
Mennyi az az x oszlop? 3 vagy 500? Ha 3, akkor kérdezd le 3-szor. Ha 500, akkor írj egy tárolt eljárást, ami lekérdezi 500-szor felparaméterezve.
Másrészt biztos ezt akarod? Nem tudom mi az az alap problematika, amit ilyen elcseszett tábla szerkezettel lehet megoldani, de biztos van rá jobb megoldás.
Én kérek elnézést!
Szia!
14 oszlop van. Igen, de nem tudom,h kell:-) mivel most kezdtem:-( csak kipróbáltam egy csv-ből betölteni adatokat, ez ment. Utána próbáltam lekérdezni, az is megy de csak egy oszlopra, egy adattal,de összetett lekérdezés, tárolt eljárás ahogy írod...dunsztom sincs egyenlőre. Pedig azt gondoltam,h egyszerű...de nem:-(
[ Szerkesztve ]
Nekem8
Egy Transact-SQL szösszenet:
create table #tmpString
(
nID int identity(1,1) not null,
cColumn01 varchar(512),
cColumn02 varchar(512),
cColumn03 varchar(512)
)
insert into #tmpString
(cColumn01, cColumn02, cColumn03)
values
('ajkfiemndiewnnsd,iewjendsncpwqe', 'ndnaseondcsnnwifdscnoewfnnxasoqwebc', '824dsladnan84ernlsnd32lndal'),
('dskdjlfrbv.xcmy.cmpewruwed pskqdaső3ö4urjfdlsac', 'nldfcsarhjöwjadaljdfwöerjqdfhzr', 'df 9r ö2jqwpdkapádkarfjhöw xo'),
(',asdfwriwepjdfcslanc9wzrigvbksjfnwoeirztgfbsckxlfhjreoj', 'dwoiru23öpjdéscmnweruwéj', 'cwéoiujwöx qwmd ewruö xwoédfjqwe w98r ')
declare
@cText varchar(max),
@nI int
declare @tblLetters table
(
cChar char(1)
)
declare curProcess cursor dynamic for
select
isnull(S.cColumn01, '')+isnull(S.cColumn02, '')+isnull(S.cColumn03, '')
from
#tmpString S
open curProcess
fetch next from curProcess into @cText
while @@fetch_status = 0
begin
set @nI = 1
while @nI <= len(@cText)
begin
insert into @tblLetters (cChar) values (substring(@cText, @nI, 1))
set @nI = @nI+1
end
fetch next from curProcess into @cText
end
close curProcess
deallocate curProcess
drop table #tmpString
select
L.cChar, nCount = count(*)
from
@tblLetters L
group by
L.cChar
order by
cChar
[ Szerkesztve ]
Uhhh, köszönöm! Lehet,h nagy fába vágtam azt a bizonyost, mivel eddig csak pár select és egy egyéb egyszerű parancsot próbálgattam, de ez kicsit összetettebb. Hülye kérdés, de ezt a MySQL-ben h kérdezem le?
Nekem8
Ez esetben lehet érdemes lenne elgondolkozni azon, hogy nem SQL-ben oldod meg a kigyűjtést, hanem valamilyen programnyelvben.
A csv-t elég könnyű bármilyen nyelven bejárni, és megszámolgatni a betűket.
SQL-ben ez eléggé az SQL megerőszakolásának tűnik. Ráadásul ez esetben lehet SQL-lel megoldva sem lesz hatékonyabb az adatfeldolgozás.
Egyébként igen MySQL-lel is le tudod kérdezni, csak át kell alakítanod a kapott T-SQL megoldást MySQL-nek tetszőre.
Én kérek elnézést!
Üdv,
Access-ben iif kifejezésben hogy tudok szövegrészletre szűrni?
Like "*valami*" szerű dolog kellene.
asszem:
instr([mezőnév], "valami")>=0
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]
köszi, ezt még nem ismerem, de ki fogom próbálni.
Most hirtelen úgy oldottam meg, hogy az első lekérdezésben csináltam egy külön oszlopot, ami true vagy false értéket kap, az alapján, hogy megegyezik-e a szöveg, konkrétan:
A: [név] Like "szöveg*"
Majd a következő lekérdezésben már ezt tudom szűrni iif-fel, hogy iif([A]=false,"akkor ez","különben az")
Sziasztok!
Kicsit eltér a témától, remélem befér a topikba a kérdésem.
Szeretnék PL/SQL Developert használni Win XP-n, otthoni számítógépemen. Elég kezdő vagyok, csak annyit tudok, hogy kellene alá valamilyen adatbázis szerver.
Hogyan tudok a legegyszerűbben "életet lehelni" a Developerbe? Kellene hozzá külön szervert is telepítenem? Mit ajánlotok?
Oracle Express Edition [link]
Ha már ismerkedés, akkor esetleg javaslom az MS SQL-t, MySQL-t és a PostgreSQL-t is kipróbálásra.
Én kérek elnézést!
Sziasztok!
Nagyon kezdő vagyok a témában.
Adott egy lekérdezés Ms sql-ben, ahol személyeket megyénként kell lekérdezni.
Ha egy megye kódját adom meg, akkor rendben van. Hogy kell az összes megyét beletenni?
cou.COID=4 ezzel megy, de hogy írjam be az össze megyét egyszerre? (2=Baranya, 3=Borsod és így tovább).
Köszi!
u.
rasti rusti
Nem kell külön megadni mind, a Select részben megadot a megyéket tartalmazó oszlop nevét, és ennyi
SELECT személynév, cou FROM tábla
[ Szerkesztve ]
Ha listázni akarod a megyék mellé a személyeket is, akkor ORDER BY-jal rendezz a megyékre.
Ha a megyék mellé csak a személyek darabszáma kell, akkor a személynevek oszlopa helyett COUNT(*), a végén pedig GROUP BY a megyékre.
Össze kell kapcsolni a két táblát.
Az oracle féle lusta szintaxis azt hiszem működik mssql alatt is:
select x.megyenev,y.szemelynev
from szemely y,megye x
where y.megyeid=x.megyeid;
ha nem, akkor a join parancs kell neked,
[ Szerkesztve ]
=Kilroy was here============================ooO=*(_)*=Ooo=======
Köszi mindenkinek a nagyon gyors választ!
A cou.COID=4 szűrést kellett törölni és listázta az összes megyét.
Köszönöm még egyszer!
u.
rasti rusti
Van esetleg ezekről valamilyen leírás, ami mentén el tudnék indulni? Akár elmélet, akár telepítéssel kapcsolatos infók jól jönnének.
persze, mindegyik termékhez a hivatalos a dokumentációban le van írva
Sziasztok,
Lenne egy SQL-es kérdésem, remélem tudtok segíteni.
Két táblám van mindkettőben csak 2 mező, h minél egyszerűbb legyen.
Első tábla:
hozzavalok, az alabbi mezoket tartalmazza
-alapanyag
-keszetel
Értelemszerűen azt mutatja meg, h adott kesz_etel elkészítéséhez milyen alapanyagokra van szükségünk. (természetesen mindkettő id, azaz ineteger tipusú). mindkettő többször is szerepelhet a táblában, hiszen egy kész étel több alapanyagot is tartalmazhat, és egy alapanyag több készételbe is kerülhet. Viszont egy alapanyag-keszetel pár csak egyszer szerepel, nincs két ugyanolyan rekord.
A második tábla:
kinek_mi_van_otthon, az alabbi mezokkel
-nev
-alapanyag
Melyben azt láthatjuk, h ki milyen alapanyagokkal rendelkezik. itt is igaz, ami az első táblánál, tehát: mindkét mező id, egy embernek több alapanyaga is lehet, ugyanaz az alapanyag egyszerre több embernek is birtokában lehet, de duplázódás nincs.
Egy olyan lekérdezést szeretnék összehozni, mely megadja, h mely emberek mely készételeket tudják elkészíteni. Itt ugye megint egyszerű a szabály, azokat a készételeket tudja elkészíteni adott ember, amelynek összes alapanyagával rendelkezik. Látszólag tök egyszerű a dolog, hiszen csak 2 tábla, 2 mező, de nekem valahogy mégsem jön össze.
Előre is köszi a segítséget!
Üdv, Szecska_
Íme egy T-SQL megoldás. Sajnos nem volt elég időm rendesen kidolgozni, de remélem, hogy tudod majd használni.
create table [hozzavalok]
(
[keszetel_id] [int] not null,
[alapanyag_id] [int] not null,
constraint [PK_hozzavalok] primary key clustered
(
[keszetel_id], [alapanyag_id]
)
)
create table [kinek_mi_van_otthon]
(
[szemely_id] [int] not null,
[alapanyag_id] [int] not null,
constraint [PK_kinek_mi_van_otthon] primary key clustered
(
[szemely_id], [alapanyag_id]
)
)
insert into hozzavalok
values (1,1),
(1,2),
(1,3),
(2,3),
(2,4),
(3,1),
(3,5)
insert into kinek_mi_van_otthon
values (101,1),
(101,2),
(101,4),
(102,1),
(102,2),
(102,3),
(102,4),
(102,5),
(103,3),
(103,4)
select distinct
keszetel_id, szemely_id
from
-- Minden készételhez egy személy hozzárendelése
hozzavalok, (select distinct szemely_id from kinek_mi_van_otthon) sz
where -- Csak azok a személyek kellenek, akiknél minden megvan
not exists (
-- Azon személyek halmaza, akiknek valamelyik készétel alapanyagából hiánya van
select
*
from
(select
keszetel_id, alapanyag_id, szemely_id
from
-- Minden készétel alapanyaghoz egy személy hozzárendelése
hozzavalok, (select distinct szemely_id from kinek_mi_van_otthon) sz) hv
left outer join kinek_mi_van_otthon on kinek_mi_van_otthon.alapanyag_id = hv.alapanyag_id
and kinek_mi_van_otthon.szemely_id = hv.szemely_id
where
kinek_mi_van_otthon. szemely_id is null -- Azon személyek kellenek, akiknél valamiből hiány van
-- az adott készételnél
and hv.keszetel_id = hozzavalok.keszetel_id
and hv.szemely_id = sz.szemely_id
)
order by
hozzavalok.keszetel_id, sz.szemely_id
drop table hozzavalok
drop table kinek_mi_van_otthon
Tökéletesen működik, köszönöm a gyors segítséget
[ Szerkesztve ]
Sziasztok!
nem tudom hogy jó helyen teszem fel e, de nem találtam jobbat a kérdésemre.
Lenne egy weboldal, amelyhez készülne egy program iOS-re, az oldal sql -t használ viszont a programhoz sqlite-ra lenne szükség (mivel ezt használja az IOS).
A program indításkor ellenőrizné a weboldalt, hogy van a frissített adatbázis és ha vana zt letöltené, ha nincs akkor menne a lementett adatbázissal, erre azért van szükség, hogy offline is használható legyena program.
Tehát a kérdés az az, hogy hogyan lehetne az sql-t sqlite-ba konvertálni.
"Tehát a kérdés az az, hogy hogyan lehetne az sql-t sqlite-ba konvertálni."
ez a kerdes igy nem ertelmezheto, az sql a "Standard Query Language" roviditese, s a lekerdezesek definialasara valo
az sqlite meg egy konkret rdbms (relational database management system) megvalositasa, ami tobb-kevesebb sikerrel implementalja az SQL-t
a kerdes igazabol az, hogy milyen dbms-t hasznalsz a szerveren, s hogy ebbol hogyan lehet atpakolni az adatokat egy sqlite adatbazisba (a valasz meg az, hogy olyan sql utasitasok segitsegevel, amiket megfeleloen kezel mindket dbms-ed, illetve az, hogy esetleg a szerveren is hasznalhatsz sqlite-ot)
Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.
mysql vana szerveren.
ugyan nem probaltam (google dobta), de mivel stackoverflow, egy probat meger: Bovebben: link
Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.
Ha esetleg túl melós a konverzió, esetleg az oldal is tudhat sqlite-ot használni. Ekkor lehet azonos az adatbázis.
=Kilroy was here============================ooO=*(_)*=Ooo=======
Erről tudsz nekem írni egy kicsit konkrétabban?
(#786) rt06: sajnons nem megy ezzel
[ Szerkesztve ]
Mennyi adat van a mysql-ben?
Ha néhány 10 sor és csak pár tábla, akkor javaslom, hogy a program minden indításkor szedje le mysql-ből az összes adatot, majd az adatokat tolja be az sqlite-ba.
Én kérek elnézést!
kb 8000 sor van az egyik táblában amásik kettőben összesen 50 kb. lehet ez lesz a megoldás
sikerül átkonvertálnom egy script segítségvel közvetlenül aza eredeti adatbázisból. Igaz több napba kerül a megfelelő script megtalálása , de úgy érzem megérte az egész, így nem kell a weboldalon változtatni. Igaz mág csak sqlite browserban néztemde ott szépen megcsintja az adatbázis remélem fejlesztéskor sem lesz vele gond.
Hali, hogy lehet két dátum közötti eltelt napok számát számolni oracle-ben?
a dátumokat simán ki lehet vonni egymásból, amiből szám lesz
1 egész jelent 1 napot
SQL> select to_date('2011-10-12 08:00:00', 'YYYY-MM-DD HH24:MI:SS') - to_date('2011-10-01 19:00:00', 'YYYY-MM-DD HH24:MI:SS') from dual;
TO_DATE('2011-10-1208:00:00','YYYY-MM-DDHH24:MI:SS')-TO_DATE('2011-10-0119:00:00
--------------------------------------------------------------------------------
10.5416667
aztán ezt lehet még szépíteni ha szeretnéd, pl. trunc()
használ itt vki pl-sql-t? ha igen az use hash parancs pontosan mire való?
idáig csak különböző selecteket irogattam, de most a fonok adott egy combosabb melot...
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
az nem parancs, hanem hint
select /*+ USE_HASH(t1 t2) */ t1.oszlop1, t2.oszlop2, ... from sema1.tabla1 t1, sema2.tabla2 t2
where t1.id = t2.id;
Oracle-ben az optimalizálót úgynevezett "hint"-ekkel lehet befolyásolni, hogy milyen végrehajtási tervet készítsen
a fenti példában mindenképp HASH JOIN-t fog használni a többi lehetőség (NESTED LOOPS, MERGE JOIN) helyett
az is látszik ugye, hogy kommentben van, nem parancs - ha hülyeséget írsz bele, egyszerűen figyelmen kívül hagyja
rengeteg ilyen hint van, olyan is, ami dokumentálva sincs
nem jó gyakorlat eleve ezekkel megírni egy utasítást, alapvetően ezek nélkül lenne jó megoldani mindent
én Oracle DBA-ként dolgozom, amikor valamelyik cégtől szólnak a fejlesztők, hogy lassú valamelyik SQL, akkor szoktuk hangolni, és hinteket használni ha szükséges
[ Szerkesztve ]
köszi!
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
Sziasztok!
Az a gond hogy a tanárnő túl későn adta meg a kérdéseket, így kevés időm van rá
ezért kérem a segítségeteket!
Tudnátok segíteni néhány lekérdezésben?
melyik cég rendelte a legtöbb szobát?
melyik cég hány éjszakát rendelt összesen?
hány szoba szabad ma éjszakára?
a legdrágább szobát kik rendelték már meg?
melyik szobák foglaltak az egész jövő hétre?
Köszi!
ez túl sok kérdés volt. Nem hiszem, hogy bárkinek annyi ideje lenne, hogy helyetted megoldja a komplett feladatot.
Én kérek elnézést!
nem kell mindegyiket csak légyszi segítsetek be! Az is jó ha csak egyet oldotok meg! Minden segítség jól jön. Az 1. már kész van! Én is folyamatosan csinálom csak most már azért kezdek álmos lenni. A tanárnő egy hetet adott a feladatra csak az enyémet most küldte el pár órája, mert elfelejtette.