Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz rum-cajsz #2752 üzenetére
Azt írta, hogy "van szám, szám per betű, számtólszámig és több más forma is." Szóval nem túl szabályos. A regexp, amit előbb írtam, a legegyszerűbb megközelítés, ha lenne több példaadat is, akkor persze könnyebb lenne több esetet is lefedő regexpet írni, de a megadott példaadatokkal ez is működik (ld. SQL Fiddle-példát).
Sk8erPeter
-
válasz Sk8erPeter #2751 üzenetére
Az alapján, amit írtál, ezt faragtam, ez közelíti meg legjobban a korrekt rendezést szerintem:
select street_id,number, substring(trim(leading ' ' from number), '^[0-9]+')::integer,
trim(leading '/-' from trim(leading '0123456789' from trim(leading ' ' from lower(number))))
from locations order by 1,3,4;kösz az ötleteket.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
válasz rum-cajsz #2752 üzenetére
ez azért nem jó, mert nem rendezi sorba az 5/a, 5/b, 5/c jellegű számokat.
az tűnik az elérhető legjobb megoldásnak, ha leválasztom az első számot, ebből lesz az első rendezési feltétel, kiveszem (ha van) a mínuszt és a pert, és ami utána van, abból csinálok egy másik rendezési feltételt. Ha ezt utcánként nézem, akkor annyira már nem elvadult a számozás, hogy túl nagy hibát vétsek. nyilván az összes lehetséges esetet ez nem fedi le, de úgy látom, hogy nem fordul elő minden kombináció minden utcában, tehát utcán belüli sorbarendezésre ez elég.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
MrCsiT
addikt
Sziasztok!
SQL 2014-el kapcsolatban, kérdésem, hogy mi a tapasztalat az SQL2014-ről, van-e olyan hibája esetleg, ami miatt nem javasolt használni?
[ Szerkesztve ]
"Nekem a "link" egy hivatkozás legyen, ne egy ember ?!" - by Mr.CsiT
-
dellfanboy
senior tag
van egy scriptem ami lefut, nem ír ki hibát viszont az eredményhalmaz 0. hol/hogy tudok rájönni, hogy mi lehet a hiba? túl sok feltételt rakok bele? vagy az egyik join nem jó?
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
sztanozs
veterán
válasz dellfanboy #2759 üzenetére
Építsd fel újra (lépésenként) a lekérdezést és a végén meg fogod találni azt a logikai hibát, ami a nulla elemű eredményhalmazt okozza...
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Apollo17hu
őstag
válasz dellfanboy #2759 üzenetére
Nem biztos, hogy hibás. Attól függ, mi a kérdés, amire a scriptet írod.
-
seger
addikt
Sziasztok!
Kérdéssel fordulok hozzátok!
Van-e arra lehetőség, ha igen hogyan.
van 2 számítógép, mind a kettő használ egy programot. (ugyan azt a progit) Adatbázis (LDF,MDF)
Mind a két gépen vannak adatok bőven. van olyan hogy mind a két gépen ugyanazon név alatt de más adat.
A kérdés az lenne, van-e lehetőség 1 gépre összehozni mindent 1 adatbázisban. Ugyanis ahol egy név alatt más az adat de a név ugyan az, az egybe kellene lennie.
Mivel az egyik gépet meg kell szüntetni.
Remélem érthetően irtam le.
Köszi[ Szerkesztve ]
-
Elvi válasz: igen, lehet.
Gyakorlati válasz1: nem lehet
Gyakorlati válasz2: lehet, de sok meló és sokba kerül.gyakorlati tapasztalatom az, hogy a duplikált adatok normális állapotba hozása automatizált programokkal lehetetlen, így marad a kézi babrálás egyesével, tételesen átnézve és ellenőrizve. ez pedig sok munka és általában sokba kerül. Sok ilyen melóm volt, a legutóbbit 3 hete fejeztük be, és mindig káosz volt.
Egy példa: tegyük fel (tényleg csak a példa kedvéért, mert ennek bemutatására kiválóan alkalmas a neve), hogy Giró-Szász András az ügyfeled. Komoly pénzeket vagyok hajlandó feltenni arra, hogy az egyik gépen Giró Szász András néven lesz rögzítve, a másikon Giró-Szász András néven, és ha lenne egy harmadik géped is, akkor ott Giró-szász András lenne.
Abban is komolyan hiszek, hogy az utcák helyesírása sem ment, tehát még egy Kossuth utca is többféleképpen lesz az adatbázisokban, pláne egy bonyolultabb. További probléma, ha átneveznek egy utcát, vagy Moszkvateret, akkor az is olyan szintű inkonzisztenciát fog okozni, amit lehetetlen leprogramozni.
valaki leül a gépek elé, és kézzel bepötyögi, más út nincs.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
rum-cajsz
őstag
Erre a kérdésre ne nagyon várj komoly választ. Ha van konkrétum, abban tudunk segíteni, de két adatbázis migrációjának elvégzését csak úgy lehet megmondani, ha ismertek az adatbázisok.
Elméletileg bármit lehet, ami már bent van az adatbázisban, gyakorlatilag fel kell mérni a két adatbázis közös és eltérő pontjait, és egy áttérési tervet kell kidolgozni. Az áttérés előtt érdemes a két adatbázist helyben normalizálni, és csak ez után elvégezni az összefésülést.
Esetleg arra is van lehetőség, hogy ugyanazon a gépen több adatbázis is fut, akik nem tudnak egymásról.
=Kilroy was here============================ooO=*(_)*=Ooo=======
-
amargo
addikt
Ha a program úgy lett meg írva, hogy csak egy db-hez csatlakozzon, hogy tudna kettőhöz?
Fel tudod csatolni a két db-t az MSSQL management-el is. Ott elkezdheted összenézni az adatokat.
Inkább ezt javasolnám: [link]
Gyakorlatba még nem használtam, így véleményem nincs, de a jelzett problémákat biztos egyenként kell majd végig nézni..[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
pakriksz
őstag
Hello
Van egy táblám: ip(varchar), userid(varchar), downloads(int)Ebbe ugye ip címek, user azonosítóknak kéne kerülni, és ahányszor ez az ip userid páros hívja meg a scriptet annyiszor emelkednie a downloadsnak. Na most az a gond, hogy egy ip-hez több userid is tartozhat, de egy userid-hez több ip.
Szóval ha a páros különbözik, akkor nem a downloadsot kéne emelni, hanem új rekord.Ez a lekérdezés hozzá: INSERT INTO stats (ip, userid, downloads) VALUES ('$userip','$user',1)
ON DUPLICATE KEY UPDATE downloads = downloads + 1"
Csakhogy ez így nem jó. Van valami módszer arra hogy csak akkor vegye duplicatenek, ha a userid és az ip egyezik?Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
megvan
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
válasz sztanozs #2770 üzenetére
lehet 2 mező kulcs? Úgy rémlik arra errort dobott, hogy dupla kulcs... ezért inkább hozzáadtam még egy mezőt, amibe az ip és a userid közös hash-je kerül, és az lett a kulcs
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
44kos
tag
Sziasztok!
Pár hete kezdtem el PL/SQL-es foglalkozni, és akadt egy kérdésem:
Hogy lehet azt megvalósítani, hogy egy tábla első három sorát dolgozzam csak fel?
Például van egy 14 soros tábla, aminek van többek közt egy név és egy fizetésmezője, és én az első 3 sorban lévő adatokat szeretném egy általam definiált rekordba eltárolni és kiírni.Ezt a kódot írtam rá:
declare
emp_adatok emp%ROWTYPE;
begin
for i in 1..3
loop
select * INTO emp_adatok from emp
where ROWNUM=i;dbms_output.put_line(emp_adatok.ename);
end loop;
end;no data found hibaüzenetet ad, pedig a táblának van pontosan 14 sora.
Mit javítsak rajta?
-
rum-cajsz
őstag
Azt most nm pont értem, hogy miért nem ad vissza sort a te példád, viszont ha visszaadna, akkor sem biztos, hogy azt kapnád, amit szeretnél, mivel a lekérdezés eredménye order by nélkül nem feltétlenül ugyanazt a sorrendet adja vissza egymás után kétszer.
Az első 3 sort így tudod szűrni:
begin
for i in (
select * INTO emp_adatok from emp where ROWNUM<4
) loop
dbms_output.put_line(i.ename);
end loop;
end;[ Szerkesztve ]
=Kilroy was here============================ooO=*(_)*=Ooo=======
-
Ablakos
őstag
Igen a rownum ilyen sajátosan működik. Egytől indul, egyesével növekszik. A where-ben kiértékeli a pszeudo értéket, ami először 1. Mivel a feltétel teljesült (=1) lefut, jön a következő ciklus. Következő for ciklusban megint kiértékeli és megint csak 1-el indul a rownum, de a feltétel nem teljesül (i = 2). Ekkor null value akaródzik a változóba menni, és ennek a jutalma no data found kivétel.
[ Szerkesztve ]
-
bpx
őstag
Egy megoldás már le lett írva, így csak a hibára reagálnék. Azért nem ad eredményt, mert pl. annak, hogy WHERE ROWNUM = 2, nincs értelme, soha nem fog eredményt adni. A ROWNUM eredményhalmazra vonatkozik, és nem táblára. A ROWNUM értéke folyamatosan növekszik az eredményhalmaz sorainak számával együtt. A ROWNUM = 1 azért működik, mert az első sorra teljesül, hogy az az első sor. A ROWNUM = 2 azért nem ad eredményt, mert az első sorra nem teljesül, hogy az a második sor, így nem kerül be az eredményhalmazba, és a ROWNUM értéke sem fog növekedni, így nem lesz eredmény sem.
Na, lassú voltam.
[ Szerkesztve ]
-
pityaa23
senior tag
Sziasztok!
Van egy kis adatbázis tervezési gondom. Étrend tervezőt szeretnék készíteni. Ami kb így kéne felépüljön:
1 user bármennyi étrendet készíthet, 1 étrend maximum 8 étkezésből állhat, egy étkezést 5 alapanyagból lehet összeállítani és az alapanyagok mennyiségét is meg kell adni.
valahogy így kell elképzelnipróbáltam már valahogy összeállítani, nem nagy sikerrel:
[link]El is kéne tudni majd menteni az étrendet. Tudnátok segíteni a logikai felépítésben?
Köszönöm előre is!
-
DNReNTi
őstag
válasz lakisoft #2778 üzenetére
"Tudnátok segíteni a logikai felépítésben?"
Szerintem ehhez nem kell kód. Gondolom inkább arra kíváncsi ki hogyan építené fel a táblákat, kapcsolatokat, hogy az jó legyen.És ha már itt tartunk leírom én is:
Mindenképpen kell felhasználók és alapanyagok tábla ugye. Kell egy étrendek kapcsolattábla, ez fogja tárolni melyik felhasználónak mely étrendjei vannak. Ezt követi az étkezések kapcsolattábla ami azt mondja meg mely étrendek milyen étkezéseket tartalmaznak. Végül jön az alapanyag kapcsolattábla, ami összeköti az alapanyagokat az étrendekkel. Hát így nagyon leegyszerűsítve valahogy így.[ Szerkesztve ]
but without you, my life is incomplete, my days are absolutely gray
-
martonx
veterán
válasz pityaa23 #2782 üzenetére
Első ránézésre már nem vészes.
Pár észrevétel:
1. a táblád nevei nagyon bénák. Alapanyag, meg alapanyagok? Eleve mindent angolul nevezünk el, a kapcsolat táblákat pedig valahogy úgy illik elnevezni, hogy a nevéből is látszódjon, hogy mit kapcsol össze mivel.
2. Az étkezést tovább bontanám ételekre, mert egy ebéd pl. jó eséllyel áll levesből és főételből.
3. hiányolom a mennyiségi egységet az alapanyagokból. Nem mindegy, hogy 1 liter, vagy 1 kg.Én kérek elnézést!
-
-
pityaa23
senior tag
válasz martonx #2783 üzenetére
Köszi a tanácsokat,
1. valóban, ez nem végleges, csak gyorsan összedobtam valamit.
2. nem gondolom, hogy kell, itt gyúrós étkezések lesznek, kb csirkemell, rizs, salátából áll egy étkezés, nincs előétel, főétel, desszert. Nem kész ételek, hanem alapanyagok.
3. 100g ban lévő tápanyagokat mutatná a táblázat, pl 100g csirkemell: 109 kalória, 25g fehérje, 1g zsír, 0g szénhidrát.
bambano: az időpont sem lényeges, a user eldönti egy nap hány étkezést akar, annyit állít össze. Majd elosztja magának a nap folyamán.
[ Szerkesztve ]
-
Diopapa
addikt
Üdv!
Kis segítséget szeretnék kérni. Van néhány táblám. A struktúra azon része ami most kell:
station_list tábla, station_id, system_id mezők
bfmarketdata tábla, timestamp, commodity_id, station_id mezők
distances tábla, first_system_id, second_system_id, distance mezőkA lekérdezésem:
select station_list.station_id , bfmarketdata.timestamp from distances
inner join station_list on second_system_id = station_list.system_id
inner join bfmarketdata on bfmarketdata.station_id = station_list.station_id
where first_system_id = '1916' and commodity_id = '85' and distance <= 30
order by distanceezt az eredményt kapom:
"station_id" "timestamp"
"236" "20150311170757"
"202" "20141223163432"
"209" "20150115195106"
"208" "20141225112250"
"202" "20141225114051"
"202" "20141222111219"
"209" "20141225121332"
"225" "20150115190005"
"205" "20141223194642"
"201" "20141226164121"
"201" "20150114165111"
"201" "20141221175132"
"194" "20141220224501"
"194" "20141223161651"Azt szeretném elérni, hogy egy station_id egyszer szerepeljen. Az, amelyikhez a legújabb timestamp tartozik. Plz help!
Citizen Diopapa / Commander Diopapa "SC csomag olyan, mint a barackfa, unokáidnak veszed - .tnm / De pálinkát nemlehet főzni belűle - *SkyS1gn"
-
Ispy
veterán
válasz Diopapa #2788 üzenetére
select station_list.station_id , MAX(bfmarketdata.timestamp) from distances
inner join station_list on second_system_id = station_list.system_id
inner join bfmarketdata on bfmarketdata.station_id = station_list.station_id
where first_system_id = '1916' and commodity_id = '85' and distance <= 30
group by station_list.station_id
order by distance"Debugging is like being the detective in a crime movie where you're also the murderer."
-
pityaa23
senior tag
Sziasztok!
Lehet amatőr kérdés, ne egyetek meg miatta.
Most volt időm megint elővenni az étrendtervezős táblát, amit már múltkor tárgyaltunk, de nem értem pontosan, hogy kéne felépíteni. Megpróbálom elmagyarázni a problémám. :
Itt van két kép, hogy könnyebben megértessem magam:(Mielőtt megint leharapjátok a fejem, ez csak vázlat, nem magyar lesz a végeredmény. )
A tervezendő étrenden belül 8 étkezés lesz, de nem kötelező mind a 8-at kihasználni. Minden étkezés 5 alapanyagból állhat, aminek a mennyiségét is meg kell adni. Majd a végén kiszámolja nekünk a kalória, fehérje, stb... tartalmát étkezésenként és az egész étrendét is. Ezt el is lehet menteni majd.
Hogy lenne érdemes megoldani az étkezések táblát, táblákat, hogy alkalmas legyen mentésre és tudjam, hogy melyik user, melyik étrendjéhez, melyik étkezéséhez, melyik kiválasztott alapanyag tartozik?
(Van külön tábla az alapanyagoknak, és a kategóriáknak.)
Köszönöm előre is!
-
-
Ispy
veterán
válasz bambano #2794 üzenetére
+1
Egy étkezés tábla kell és egy mező, amiben letárolod az étkezések ID értékét, ami megint lehet egy étkezések törzs tábla. De az igazság az, hogy az adatbázisok tervezése egy külön szakma, itt max. tanácsot tudunk adni, de végeredmény ettől még kérdéses lesz.
[ Szerkesztve ]
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
pityaa23
senior tag
Köszönöm a válaszokat!
Közben azon gondolkoztam, hogy lehet nem is kell étkezés tábla. Ha beleteszem a kiválasztott táblába az étkezés oszlopot, akkor ott a bevitelnél majd megjelölöm melyik étkezéshez tartozik a kiválasztott alapanyag.
Azt nem tudom, hogy ha még az étrend_ID -t is tárolnám ebbe a táblába akkor igaz hogy csúnyábban nézne ki, de nem kéne az étrend és a kiválasztott kapcsolattábla, ha jól gondolom. Így mondjuk: [link] -
-
sityupityka
újonc
Az első 8 feladat megoldása érdekelne....Bárki aki segít annak nagyon hálás lennék
-
rum-cajsz
őstag
válasz sityupityka #2798 üzenetére
negyvenkettő
=Kilroy was here============================ooO=*(_)*=Ooo=======
Új hozzászólás Aktív témák
- ÚJ Független Apple iPhone 15 Pro 256GB !!! 1éV nemzetközi APPLE GARANCiA
- -50% Lenovo ThinkPad T14 Gen 3: i5 1250P (12mag/16szál!!!),16GB,512GB,TOUCH,Win 11Pro,gari 2025.9.2.
- Samsung Galaxy S24 Ultra 12/512gb, Titánszürke, 1 hetes, csak kipróbált, 3 év garanciával, eladó!
- HP ENVY x360 15-fh0755ng Convertible - ÚJ - 15,6" notebook - Ryzen 5, 16GB, 512SSD, Win11
- Iphone 12 64GB független 94% akku