Új hozzászólás Aktív témák
-
gaben
aktív tag
válasz WonderCSabo #751 üzenetére
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 ]
-
ko9
addikt
Ü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` =4Ha 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! ---------
-
ko9
addikt
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! ---------
-
D@ni88
addikt
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
-
Lortech
addikt
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
-
gabó
tag
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
-
martonx
veterán
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!
-
gabó
tag
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
-
Atcom
csendes tag
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 ]
-
martonx
veterán
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!
-
varsam
őstag
Üdv,
Access-ben iif kifejezésben hogy tudok szövegrészletre szűrni?
Like "*valami*" szerű dolog kellene. -
varsam
őstag
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") -
Apollo17hu
őstag
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?
-
bpx
őstag
válasz Apollo17hu #770 üzenetére
Oracle Express Edition [link]
-
martonx
veterán
válasz Apollo17hu #770 üzenetére
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!
-
ultio
senior tag
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
-
rum-cajsz
őstag
Ö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=======
-
ultio
senior tag
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
-
bpx
őstag
válasz Apollo17hu #778 üzenetére
persze, mindegyik termékhez a hivatalos a dokumentációban le van írva
-
szecska_
csendes tag
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
-alapanyagMelyben 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_
-
Atcom
csendes tag
válasz szecska_ #780 üzenetére
Í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 -
Kommy
veterán
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.
-
rt06
veterán
"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-ta 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.
-
rt06
veterán
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.
-
Kommy
veterán
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.
-
D@ni88
addikt
Hali, hogy lehet két dátum közötti eltelt napok számát számolni oracle-ben?
-
bpx
őstag
a dátumokat simán ki lehet vonni egymásból, amiből szám lesz
1 egész jelent 1 napotSQL> 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.5416667aztán ezt lehet még szépíteni ha szeretnéd, pl. trunc()
-
dellfanboy
senior tag
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
-
bpx
őstag
válasz dellfanboy #794 üzenetére
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 sincsnem 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 ]
-
hujni
csendes tag
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!
-
hujni
csendes tag
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.
Új hozzászólás Aktív témák
- Google Chromecast topic
- Milyen autót vegyek?
- World of Warships
- Horgász topik
- Tamás88: 2025 a PC-s szemétdombok éve lesz?
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- A fociról könnyedén, egy baráti társaságban
- Samsung Galaxy A52s 5G - jó S-tehetség
- Kerékpárosok, bringások ide!
- További aktív témák...