Hirdetés
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- urandom0: Száműztem az AI-t az életemből
- eBay-es kütyük kis pénzért
- Brogyi: CTEK akkumulátor töltő és másolatai
- Elektromos rásegítésű kerékpárok
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Real Racing 3 - Freemium csoda
- hcl: Poco F2 Pro facepalm
Új hozzászólás Aktív témák
-
Tanisz
senior tag
válasz
GreenIT
#3791
üzenetére
Jó dolog a NoSQL, de nem feltétlen és nem minden esetben tudja (vagy érdemes rá) kiváltani az SQL-t.
Annyira nagy tapasztalatom nincs benne a legalábbis a NoSQL-ek terén, főként MongoDB-t használtam eddig, azt meg ugye dokumentumok tárolására a legérdemesebb használni, de lehet bármire, amire akarod.Ismerni és használni tudni érdemes a NoSQL-t, valamint hogy milyen lehetőségeket ad, de hogy az 1-1-ben kiváltani velük az SQL-t háááát.......
Akinek van Redis tapasztalat esetleg írjon már pár sort róla.
Ahogy láttam vannak külön függvényei a GIS-hez is, ezért keltette fel az érdeklődésem
Bár találtam egy ilyet , meg ilyet
-
martonx
veterán
válasz
GreenIT
#3796
üzenetére
Hinnye, ehhez a céghez se mennék el dolgozni, ha ilyen f****ságokat beszélnek már egy állásinterjún is

A Redis persze tök jó dolog, mondjuk distributed cache-ként használva, és vannak olyan microservice-ink amik alá tényleg elég egy nosql (AWS DynamoDB szevasz) adatbázisnak 2-3 táblával, no de a világ azért nem csak fekete és fehér, nem véletlenül létezik még az Oracle, MS SQL, MySQL, PostgreSql és társaik. -
-
GreenIT
tag
Allaskeresesnel azt a tanacsot kaptam, hogy SQL helyett NOSQL-t tanuljak, mert mar az a jelen es jovo.
Van valakinek tapasztalata ezzel, valoban jon egy radikalis valtozas? -
tm5
tag
válasz
user112
#3784
üzenetére
Hát ennyi speckó alapján az alábbiak közül bármelyik jó lehet. Nem tudom melyik a preferált output neked:
-- egymas mellett
WITH sorsz8 AS (SELECT * FROM tabla WHERE SORSZ=8)
,sorsz12 AS (SELECT * FROM tabla WHERE SORSZ=12)
SELECT *
FROM sorsz8 a
LEFT OUTER JOIN sorsz12 b ON (a.azon = b.azon)
ORDER BY a.azon
-- egymas alatt
SELECT * FROM
(
SELECT * FROM tabla WHERE SORSZ=8
UNION
SELECT * FROM tabla WHERE SORSZ=12
)
ORDER BY azon, sorszIlletve az adatok (ismátlődések) ismeretében, esetleg UNION ALL a UNION helyett.
-
user112
senior tag
Sziasztok!
Ebben a táblában:
AZON
SORSZ
ERTEK
minden AZON-hoz több különböző SORSZ tartozik, de a SORSZ=12 mindenkinél szerepel.
Szeretném legyűjteni azokat a rekordokat, ahol a SORSZ=8; de ha van ilyen, akkor hozza mellé (alá) a SORSZ=12-höz tartozó ERTEK-et is.
Ebben szeretnék segítséget kérni (Oracle).
Köszönöm. -
DS39
nagyúr
válasz
Fundiego
#3782
üzenetére
szerintem így:
$sql = "
SET @rank=0;
select @rank:=@rank+1 AS rank, s.* FROM
(
SELECT gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
) s";
$result = mysqli_query($conn, $sql) or die("Bad Query: $sql");
tehát egy változóba mehet az egész.
+ gyors keresés alapján a második paraméter lehet csak az sql, a harmadik opcionális és nem az.
mysqli_query(connection,query,resultmode);
-
Fundiego
tag
Köszönöm.
Egyébként ez már php de mért dob ki hibát?
hogy kellene ezt a SET @rank-ot és select @rank-ot kiíratni php-ban? vmiért nem akar működni, hibát dob ki. (a tábla kiíratását nem illesztettem be most, de nem az a probléma)$servername = '*';
$username = '*';
$password = '*';
$dbname = '*';// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'utf8');$sql1 = "SET @rank=0";
$sql2 = "select @rank:=@rank+1 AS rank, s.* FROM
(
SELECT gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
) s";$result = mysqli_query($conn, $sql1,$sql2) or die("Bad Query: $sql");
-
nyunyu
félisten
Between azért is szívás lehet, mert ha varcharban tárolt értékeket próbálsz hasonlítani, akkor az implicit típuskonverzió számmá, aztán az csúnyán el tud szállni, ha benézel egy NULLt vagy egy nem jól/jókor szűrt táblát.
Pl. hiába teszel a between elé egy upper(x)=lower(x)-et plusz egy is not null-t, hogy a nem számokat kiszűrd, mert nem biztos, hogy mindig ugyanolyan sorrendben fog szűrni az adatbázis...
Oracle például szereti párhuzamosan kiértékelni a join feltételeket: mindegyik lefut minden sorra, aztán a részeredményekből legózza össze a join eredményét.(Telefonszámokat kellett sorfolytonos tartományokba rendeznem, ahol a telefonszám mezőben egyéb azonosítók is lehettek a nem telefon jellegű rekordokon...
Lexebb a '#47543' érték volt, ami a varchar(10)-ból kilógó hosszúságú telefonszámot tároló másik táblára mutató pointer akart lenni.
Ja, átment az upper(x)=lower(x) teszten.) -
-
K1nG HuNp
őstag
Közben lejárt a szerk, bocsánat.
MS Access 2016, hogyan tudom beállítani hogy a kurzor ne "átíró" legyen hanem a megszokott, minden máshol használt beállítású. Tehát ha belekattintok a sor közepébe és elkezdek írni akkor ne átítja a többi karaktert..
-
K1nG HuNp
őstag
AND elso<=500 AND utolso>=500
vagyAND 500 BETWEEN elso AND utolso
a helyesebb? -
Fundiego
tag
Sziasztok
Mysql-be kellene a segítség. Ezzel a kóddal csökkenő sorrendbe rendezi az össz eladott gyümölcsmennyiséget, viszont a RANK-ot a gyümölcsök abc sorrendje szerint ossza ki.Nekem pedig úgy kellene hogy a sum(mennyiseg) alapján. Mit kellene megváltoztatni?
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
; -
-
kw3v865
senior tag
Sziasztok!
PostgreSQL-ben a max id-t (legutolsóként hozzáadott rekordot) hogyan lehet a leghatákonyabb módon lekérdezni? Update-elni akarok, és eddig így csináltam:
WHERE id=(select max(id) from table) vagy így:
WHERE id=currval('table_id_seq');Utóbbi az EXPLAIN ANALYSE szerint jóval gyorsabb execution time alpaján.
Létezik esetleg valami ezekenél még hatékonyabb, gyorsabb megoldás?
-
Tanisz
senior tag
válasz
user112
#3769
üzenetére
Nullif-et én sem szoktam használni.
Talán így kellene.
Amúgy egy lekérdezésbe kell, vagy tárolt eljárásba?
Milyen SQL? Oracle,MsSQL...stb?ha oracle és a mez1 és mez2 numerikus mező:
case when nvl(mez2,0) <> 0 then round((nvl(mez1,0)*100)/ mez2,0) else 0 endde nem tudom pontosan mi a feladat
-
user112
senior tag
Sziasztok!
Null érték kezeléssel kapcsolatosan szeretnék kérdezni.
Mi a szabványos eljárás szorzás/osztás illetve összeadás/kivonás esetén?
Utóbbinál gondolom: nvl, mintkét tagnál.
Elöbbinél nullif vagy case a jó? Esetleg egy példát írnátok (round-al)?
Köszönöm! -
Tanisz
senior tag
Sziasztok,
Tudnátok mondani GUI-s Developert/Workbanch-et PostgreSQL-hez?
Ami jól használható,komplex, mint kb az Oracle oldalon a PL/SQL Developer, vagy a sima Oracle SQL Developer?SQL-Workbanch-kel szemezek, nem tudom milyen lehet. Sajna nagyon nincs időm próbálgatni a különböző eszközöket.
Ez alapján indulok ki a keresésben: [link]
Segítségeteket előre is köszönöm.
-
Fundiego
tag
Köszi, ez így jó
3763
Sajnos régebben voltak futamok ahol verseny közben a pilóták átadták egymásnak a kocsit, így előfordult a hivatalos végeredménynél, hogy pl 3 db 2. hely is lett ezáltal. A versenyzőknél ezt úgy jegyzik le, hogy 3 db 2. hely viszont a csapatoknál ez csak 1-nek felel meg. -
DS39
nagyúr
válasz
Fundiego
#3761
üzenetére
Így meg lehetne oldani:
SELECT
ev,
COUNT(CASE WHEN vegeredmeny='1' AND Karosszeria='Ferrari' then datum ELSE NULL END) első,
COUNT(CASE WHEN vegeredmeny='2' AND Karosszeria='Ferrari' then datum ELSE NULL END) második
FROM futam
GROUP BY eva distinct-et a case elé lehetne írni, de nem tudom most kipróbálni, hogy helyes a szintaktika.
-
Fundiego
tag
Hali, létezik hogy ezt a két lekérdezést egybe listázzam ki úgy, hogy ráadásul GROUP BY ev működjön és 3 oszlopba legyen ? vhogy így nézzen ki.
év első második
1950 1 2
1951 1 51. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='2' AND Karosszeria='Ferrari'
GROUP BY ev2. lekérdezés
SELECT ev, COUNT(DISTINCT datum) from futam WHERE vegeredmeny='1' AND Karosszeria='Ferrari'
GROUP BY ev -
Doink
aktív tag
válasz
bandi0000
#3758
üzenetére
Teljesen korrekt csak még hegesztgetni kell rajta.
- Fogalalt-e mezők feleseslegesek mert azt látod a bérlés/kölcsönzésből.
- Nincs klub tábla annak ellenére hogy a kluboknak és a klub tagoknak is lehet hajója. Ha egy ember több klubban is lehet akkor értelem szerűen many-to-many lesz.
- Jacht_kikötője rossz helyre van kötve, most az a klubtagok kikötője.
- A Jachtnál az épp_ebben_a_kikötőben_van dolog kicsit cseles mert ha éppen nem bérelték ki mégis mozgott akkor gondolkodni kell azon, hogy az is bekerül az útvonalba NULL bérléssel vagy sem. Ha igen akkor nem kell épp_ebben_a_kikötőben_van mező, ha nem akkor kell.Úgy hirtelen ennyit látok.
-
kw3v865
senior tag
válasz
bambano
#3748
üzenetére
@bambano
A célirányos indexek mit jelentenek tulajdonképpen? Hol tudok erről olvasni angolul? Most térbeli indexeket használok, ez sokat segít, ezek nélkül sokkal lassabb lenne.
@VirsLee
Autóban van a rendszer, valós időben kell működnie, max. 100 km/h-ig, de többnyire 80 alatt (teljesen offline, minden localhoston). Kapja a koordinátákat a nagy pontosságú GPS-től, és elsősorban térbeli lekérdezéseket kell futtatni. Jelenleg szimulálva megy a dolog, egy korábban rögzített track alapján, most éppen 25 ms-st állítottam be frissítési gyakoriságnak. ilyen gyakorisággal hívja meg a függvényeket. Többnyire PostGIS-es függvényeket használok, de ezeket kombinálom is általában, pl. a legközelebb lévő objektumok távolságát kell kiszámolni, vagy jeleznie kell, amikor az autó egy poligon területére megy rá, ilyenek. Alapvetően egyelőre meg vagyok elégedve a teljesítménnyel, de amikor bővülni fognak a funkciók (nem csak SQL, egyebek is), akkor azért már számíthat, hogy mennyi erőforrást igényel, sajnos a hardver teljesítménye korlátozott (bár aránylag jónak mondható). -
bandi0000
nagyúr
köszönöm, igazából szívesen berakom, csak attól félek, hogy nagyon rosszul sikerült és elküldötök a fenébe

feladat:
Tárolja adatbázisban a klubtagok és a hajók adatait és képét, valamint a kölcsönzéseket. Lehessen új
klubtagot, hajót, szállítóeszközt rögzíteni. Tárolja a kölcsönzéseket, amiket a klubtagok a hajók
foglaltságának figyelembevételével tehetnek meg. A tulajdonos, amennyiben az ő hajóját szeretné
valaki bérbe venni, tekinthesse meg a bérlő néhány adatát, valamint igazolja vissza, hogy a kért
időszakban rendelkezésre tudja-e bocsátani a yachtját. Minden megtett hajóút kerüljön rögzítésre,
illetve az is, hogy mikor melyik kikötőben járt vagy tartózkodik jelenleg is a hajó.
Kölcsönzéskor a bérlő adja meg, hogy honnan, hová szeretne elhajózni és hány személyes yachtra
van szüksége. Az adott időszakban szabad hajókat listázza ki a program. A klubtagok saját hajóikat
bérbe adhatják, illetve kikötőkben tárolják. A szállításhoz bérelhetnek szállítóeszközöket, amit a Yacht
Clubtól is kölcsönözhetnek. A Yacht club tulajdonában is vannak hajók, ezeket bárki bérelheti.és ez alapján csináltam egy ilyet, 1-2 dolog még béta fázisba van, hogy mit hogyan tároljak, de a magja az ilyen lenne
-
Doink
aktív tag
válasz
bandi0000
#3756
üzenetére
Ez jól hangzik, de a sok szöveg helyett foldobhattál volna egy ábrát mert az többet mond minden szónál.
Az első kérdésedre a válasz ha jól értem akkor idegen kulcsokkal tárolnád szóval nem probléma.
A hajós dologhoz:
hajók(hajo_id, jelenlegi_kikötő_id, .....)
kikötők(kikötő_id, cím, .....)
kölcsönzések(kölcsönzés_id, ......)
útvonalak(id, kölcsönzés_id, hajo_id, kikötő_id, érkezés_ideje, ....)Most itt nem tárgyalom ki hogy az id mezők helyett lehetne összetett kulcs mert nem írtál semmi sémát arról, hogy mit kell tárolni.
Ha feltételezzük, hogy egy hajó nincs mindig kikötőben mert néha épp járja a vizet akkor úgy csináld ahogy írtad és arra vigyázz, hogy az útvonalba bekerüljön az induló kikötő induláskor. -
bandi0000
nagyúr
sziasztok
nem biztos hogy szorosan ide tartozik, de hátha tudtok segíteni
adatbázist kellene terveznem, és 3.NF ra hozni
van 3 tábla, ami nem tudom mennyire lenne jól megoldva, ha, egyikbe id alapján tárolnám el a lakcímet, és a másik 2 különböző tábla mindegyik adatához tárolnám az azonosítók alapján a lakcímeket, de lehetne olyan hogy mindkettőhöz ugyan az a lakcím tartozna, ez nem lenne gond a 3. NF-nak?
mert első ötlet az volt h 3 tábla helyett csak 2 lenne, és helybe tárolnám a címeket minden sorba, de ez azt hiazem bele ütközik a 3.NF be
illetve hajóknak kellene tárolni a jelenlegi kikötő címét, és ha kibérelik akkor el kell tárolni az összes kikötőt ahol megfordult, erre is az előzőhöz hasonló megoldás jutott eszembe, hogy külön tárolom a kikötőket, és a hajók táblájában tárolnám az induló kikötőt id szerint, és egy külön táblába meg id-k alapján hogy mikor melyik kikötőbe fordult meg
ezek így mennyire életképes gondolatok?

-
Chesterfield
őstag
ERDPlus ?
-
Taoharcos
aktív tag
Sziasztok!
Adatbázis terv grafikus ábrázolásához tudtok valami ingyenes és jól használható akár online tervező/rajzoló programot/oldalt?
-
Petya25
őstag
válasz
Peter Kiss
#3752
üzenetére
Köszi, ezt én is láttam már, de 2008 alatt nincs FORMAT.
"Msg 195, Level 15, State 10, Line 2
'FORMAT' is not a recognized built-in function name." -
Peter Kiss
őstag
-
Petya25
őstag
MS SQL-ben valami egyszerű tipp arra, hogy money-ban tárolt értéket tényleg pénznem formátumban tudjak megjeleníteni? Fájlba írom szüvegként és a select a formázást eldobja.
select érték from tábla > 1234567,4
select convert(money, érték) from tábla > 1234567,4 szintén..Nekem meg 1.234.567,4 Ft vagy hasonló kellene...
-
-
kw3v865
senior tag
Sziasztok!
Tudtok-e nekem ajánlani olyan blogot, könyvet vagy bármilyen tananyagot", ahol kifejezetten a PostgreSQL függvények, lekérdezések teljesítményének optimalizálásával foglalkoznak? Olyan szoftvert fejlesztek, amiben nagyon fontos a futtatás sebessége. Itt nagy jelentősége van, hogy pl. 100 vagy 50 ms alatt fut le, és szeretnék ezen a téren fejlődni.
-
martonx
veterán
válasz
Mr Dini
#3741
üzenetére
Ha sok az adat, akkor kevés ramos gépre én nem tennék semmilyen adatbázis motort. Persze mindig relatív, hogy mi a sok. 10 sornál több lesz egy táblában, vagy 1000-nél, egymilliónál, vagy milliárdnál?
Pár táblához, ha már lokális adatbázis, akkor én sql lite-ra szavaznék, vagy valami hasonló kis fisfos lokál db-re. -
Kommy
veterán
Keresni szeretnék az adatbázisban, de van az adott mezőnek egy kinézete: 6.959-130.0
Megoldahtó az, hogy a szövegmezőbe beírt szám 69591300 legyen formázás nélkül de megtalálja a felső számot, és jó lenne ha nem kéne végiírni, hanem folyamatosan szűkülne ahogy írom be.
Több mint 50000 bejegyzés van de 20-ra van limitálva a kiírás. -
Mr Dini
addikt
Üdv!
Talán picit off a kérdésem, de úgy hiszem, hogy ha választ keresek, nem járok rossz helyen.

Adott egy viszonylag kevés RAM-mal rendelkező eszköz, amire szeretnék feltenni valami adatbázist. PostgreSQL-t, vagy mariadb-t válasszak? Csupán egy program használná, illetve pár táblára lenne szükségem, sok adattal.
Köszönöm a válasz(oka)t!

-
-
kem
addikt
Sziasztok ismet!
TimesTen DB-ben szeretnem limitalni a sorok szamat amit kiir egy SQL Query. Valakinek van erre otlete? Se a LIMIT 200; se a ROWNUM <= 200; nem mukodik.
Elore is koszonom a valaszokat!
kem
-
galocza
aktív tag
köszönöm a választ.
igen, a fülükbe toll...
1. kábelcserét elvileg én is meg tudom oldani, s így, hogy szerinted lehet az, akkor meg is fogom tenni.
2. ezzel sokat nem tudok tenni, de a leírt nem állandó probléma, hanem mintha néha "beakadna". gondolom, ha az általad leírt dolog lenne, akkor teljes káosz, anarchia, pandemonium lenne.*itt vesztettél el teljesen. gondolom nem összeegyeztethetőek... 8)
-
nyunyu
félisten
válasz
galocza
#3727
üzenetére
Ez elég nehezen távgyógyítható témakör, és a sarki pistike nem biztos, hogy saját kútfőből meg tudja oldani okosba'
Ha meg a kasszarendszert hivatalosan supportáló brigád cserélte sok pénzért a komplett gépet ahelyett, hogy megvizsgálta volna, hogy
1) hálózati kapcsolat elég stabil-e kábelteszterrel, és ha szükséges, akkor kábel újrakrimpelés RÁ VALÓ dugóval */komplett kábel csere, ha a régi menthetetlen
2) gépen jól van-e beállítva a DB connection string (pl. servert keresi-e a helyben futó Firebird példány helyett)
Akkor toll a fülükbe.
*: Tömör fali kábel vs egyenes késes UTP csatiról tudnék órákat mesélni...
-
galocza
aktív tag
halihó,
szeretném előrebocsátani, hogy tökhülye vagyok adatbáziskezelőkkel kapcsolatban, de a problémát le tudom írni, és tán némi iránymutatást tudtok adni.
munkahelyemen van 3 "kassza" kliensgép, amelyek egy külön szervergépről tápálkoznak adatokkal (firebird 2.5).
az egyik gép néha teljesen más adatokat mutat, mint a többi három, beleértve a szervert - mintha a változások hozzá nem jutnának el: hiányoznak rendszerüzenetek, készletek változásai stb. a dolog szépsége, hogy ez a gép komplett cserén esett át pár hónapja, előtte és utána is mutatta ezt a furcsaságot. hozzátartozik, hogy gyanítom, hogy a rendszergazdák nem telepítették újra sem a firebird-öt, sem az azt kezelő programot - csak átpakolták az egész hóbelevancot az új gépre.
a kérdésem: mi okozhatja a fenti problémát? adatbáziskezelő csinálhat ilyet? vagy vmelyik hálózati eszköz rendetlenkedik, és ha kicserélem a madzagokat és a (zyxel) switchet, várhatok javulást? merre induljak el?köszönettel,
g -
DS39
nagyúr
Egy ASP-s weboldallal szeretnék csatlakozni Oracle SQL adatbázishoz.
Ezzel mintával próbálkoztam, de nem sikerült:
OLE DB
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=adUseClient ' requires use of adovbs.inc; numeric value is 3
DSNTest="Provider=MSDAORA.1;Password=pass;User ID=name;Data Source=data.world"
Conn.open DSNtest
%>Korábban MS SQL-hez volt ez az oldal használva, de most az Oracle-lel kellene összebarátkoztatni.

SQL Developerben tnsnames.ora fájllal csatlakozok az adatbázishoz, a lekérdezések írásához.
-
mysqldump futását hogyan lehet felgyorsítani?
Jelenleg az alábbi parancsot futtatom az egyes DB-k lementésére:
mysqldump --opt -Q -u $mysqluser --password=$mysqlpwd $DBname > /backup/path/DB.sql
Működik jól ( export is hibátlan ), viszont nagyon lassú a művelet. 19MB-os DB-t 70 másodperc alatt ment le. Ami főleg azért probléma, mert 20 külön adatbázisom van, vagyis egy teljes mentési folyamat több, mint 20 percig tart.
-
Értem. Kösz fiúk!
-
martonx
veterán
A trigger használata követhetetlenné teszi a kódot, hogy mikor mi, miért történik. Láttam már olyan kódot, hol nagyon a triggerekre alapoztak, aztán egy idő után már senki nem tudta megmondani, hogy mi, miért történik, mikor mi mit triggerel, majd végül miért okoznak a triggerek deadlockot.
Ettől még lehet értelme a triggereknek, ahogy NyuNyu is mondta, de tipikusan nem a kódolás megspórolása miatt kell őket használni, hanem amikor tényleg valami annyira belső dolgát kell az adatbázisnak rendben tartani. -
nyunyu
félisten
PHPből hívott tákolt eljárásnak átadod paraméterként a módosítandó értékeken kívül az elkövetőt is, aztán nem egy insert lesz benne, hanem egy másiodikkal a napló táblába szúrod az elkövetőt, tetthelyet, időbélyeget?
Trigger nagyon jó arra, hogy kikényszerítsd az adatbázis konzisztenciát, de annak jelentős teljesítményvesztés az ára.
-
-
Sziasztok, volna egy sqlite kérdésem. Szeretném logolni a változtatásokat egy táblán, és hogy ki csinálta őket, így adja magát a trigger. Hogy lehetne "lecsorgatni" a triggernek, hogy ki volt az elkövető /ezt perpill csak a PHP tudja/ úgy, hogy a táblában nem tároljuk le ezt?
-
-
van valami quick and fancy módja, hogy két nagyon hasonló adatbázisban összehasonlítsam a view és tábladeklarációkat? van pár ezer...
-
bpx
őstag
Most akkor PIVOT/UNPIVOT azért van kilőve, mert nem használható, vagy mert nem sikerült megoldani vele?
with data as
(
select * from t_test
unpivot (value for val in (val1, val2, val3, val4, val5))
)
select a, b, c from (select val, value, label from data)
pivot (min(value) for label in ('A' as a, 'B' as b, 'C' as c))
order by val; -
updog
őstag
Sziasztok!
Oracleben csak SQL használatával van lehetőség bármilyen módon transzponálni fix oszlop- és sorszámú eredményhalmazt aggregálás nélkül? (tehát pivot/unpivot kilőve, legalábbis én nem tudtam megoldani vele, mert nincs kapaszkodó hozzá)

-
válasz
mr.nagy
#3702
üzenetére
A megoldás.
- ki kell pattintani az adatok egy kulturáltabb formába
- meghatározni, hogy az igény kevesebb vagy több, mint a rendelkezésre álló mennyiség
- amennyiben kevesebb a rendelkezésre álló mennyiség, akkor arányosan mindenki kevesebbet kap (csak egész értéket)
- a maradékokat szétosztjuk úgy, hogy a legkisebb igénytől a legnagyobbig emelkedő sorrendben kapnak kompenzációtNézd el nekem, hogy a kiosztandó mennyiséget ennyi_van néven konstansként tettem bele, de kicsit már késő van

create table NormalTeszt
(
igeny_id integer,
igeny_elem char(3),
mennyiseg integer
);INSERT INTO NormalTeszt
([igeny_id], [igeny_elem], [mennyiseg])
VALUES ('1', 'P01', '3'), ('1', 'P02', '5'), ('1', 'P03', '7'), ('1', 'P04', '6'), ('1', 'P05', '8'), ('1', 'P06', '9'),
('1', 'P07', '4'), ('1', 'P08', '5'), ('1', 'P09', '3'), ('1', 'P10', '4')
;select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
sorszam,
mennyiseg,
case when
ennyi_van - igeny < 0
and ennyi_van - uj_total > 0
and sorszam <= (ennyi_van - uj_total) then uj_mennyiseg + 1
else uj_mennyiseg
end as kiosztott
from (
select
igeny_id,
ennyi_van,
igeny,
igeny_elem,
mennyiseg,
sorszam,
case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end as uj_mennyiseg,
sum(case when ennyi_van / igeny < 1
then cast(mennyiseg * (ennyi_van / igeny ) as integer)
else mennyiseg end)
over(partition by igeny_id) as uj_total
from (
SELECT
t.igeny_id,
cast(40 as decimal (5,2)) as ennyi_van,
t.igeny_elem,
t.mennyiseg,
row_number() over(partition by t.igeny_id order by mennyiseg asc) as sorszam,
cast(sum(t.mennyiseg) over(partition by t.igeny_id) as decimal(5,2)) as igeny
FROM NormalTeszt as t) as t1
) t2
order by sorszam -
válasz
Petya25
#3703
üzenetére
Ne abban a táblában tartsd azokat a mezőket.
Select *-ra lejön minden mező.Le lehet tiltani bizonyos mezőkhöz való hozzáférést:
DENY SELECT ON dbo.tabla(mezo) TO [felhasznalo vagy role];
A legjobb ha letiltasz minden SELCT-et és írsz olyan VIEW-kat, amit szeretnél elérhetővé tenni. -
Petya25
őstag
Hali
MS SQL-ben egy tábla pár mezőjét el kellene bitozonyos felhasználók elöl elrejteni.
Gyakorlatilag lekérdezésban ez select * from-ra se látszódjon.
A tábla proprties-nél a "Column permissions" szürke.
Valami tipp?
Új hozzászólás Aktív témák
- SörcsaPH!
- EU-s vám vethet véget a nagyi temus vásárlási lázának
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- AMD Navi Radeon™ RX 9xxx sorozat
- Vicces képek
- urandom0: Száműztem az AI-t az életemből
- GL.iNet Flint 2 (GL-MT6000) router
- Samsung Galaxy A17 5G – megint 16
- További aktív témák...
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest









