Új hozzászólás Aktív témák
-
Jim Tonic
nagyúr
Hali,
kérdésem lenne valami SQL guruhoz. Szeretnék egy feladatot kitolni a DB motorra, és nem a programommal intézni, ha lehetséges. A feladat a következő lenne.
Egy after triggerrel szeretném megoldani, hogy egy rekord után kikeressen egy rekordot egy másik táblából, és ha ott megfelelő értéket talál, akkor írjon egy harmadik táblát, az elsőből származó adatokkal.
Gondolom, lehetséges, de jó lenne nekem egy minta.
Tud valaki ebben segíteni?[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
válasz DNReNTi #3028 üzenetére
Lehet stored procedure is vagy trigger is a megoldás, szerintem, de nekem valóban az lenne a lényeg, hogy valaki, akinek ezzel sok tapasztalata van, segítsen egy példával.
Én nem nagyon csináltam ilyet, mivel programból is megoldható, de most van rá okom, hogy kiszervezzem.Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
válasz rum-cajsz #3032 üzenetére
Máshogy írom le.
(Telesen más a téma, de itt csak körbeírnom szabad, ezért elnézést a hülye példáért.)
Table A-ba parkolóba érkező autókat viszek fel.
Mikor ezt felviszem, megnézi az autók listájában (Table B) a rendszám alapján, hogy az milyen autó. Ha a beérkező autó teherautó, akkor Table A-ból néhány mező Table C-be másolódik.Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
-
Jim Tonic
nagyúr
válasz bambano #3036 üzenetére
Meg tudtam csinálni, kisebb mértékben kellett csak módosítani a DDL-t, hogy hiba nélkül lefusson. Adatokat majd áthalászom.
Azt meg majd meglátom, hogy nekiállok el lecserélni a char(1)-t booleanre. Az már a programot és érinti.Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
Egy lekérdezésben kérném segítségeteket.
Hogyan tudom megírni úgy a lekérdezést, hogy válasszak két rekord közül.
Van egy árlista tábla. Elég hülyén van kitöltve, de ez most mindegy.
Van egy árnak kezdő érvényességi dátuma, ez kötelező, és lehet befejező dátuma, ez nem kötelező. Az indexelés úgy van belőve, hogy lehet olyan rekord, hogy azonos a kezdő dátum, azonos lehet az ár is, de nem feltétlenül, de az egyiknél van záró dátum, másiknál nincs. Na, ha ilyen duplikációk vannak, akkor azt kell vennem, ahol van záró dátum, ha nincs duplikáció, akkor jó a záró dátum nélküli is. Soha nem láttam még ennyire hülye megoldást, de ezzel kell élni.[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
válasz bambano #4529 üzenetére
Köszi mindenkinek, sikerült megoldanom. Még egy gyors kérdés:
Ha kombinálnom kell min és max értékeket (max(valid_from) és min(valid_to)) akkor az csak dupla select-tel megy, ugye? Mármint azzal megoldom, csak nem tudom, van-e egyszerűbb megoldás.[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
válasz bambano #4544 üzenetére
Ki kell szednem a valid_from értékekből a legmagasabbat, ami kisebb vagy egyenlő, mint az aktuális dátum, majd ezek közül a legkisebb valid_to, ami nagyobb vagy egyenlő, mi ma. Ezt nekem nem szedte össze az sql server (tsql) egy select-ben.
Most ezt a rank() függvényt nézegettem.
[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
Igen, ezt értettem dupla select-en. Jelenleg hasonlóan írtam meg, de ez a rank() felkeltette az érdeklődésem. De ez csak tsql, asszem.
szerk.: Apollo row_number() függvénye alapján jutottam el a rank()-hez. Köszönöm.[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
Sziasztok, jó régen jártam erre. TSQL.
1: N táblakapcsolat. A lekérdezésben az egyik mezőben 1-től N-ig kellene léptetni egy számlálót. A bal táblán a következő rekordra lépve újra egyről indul.
Tudtok erre egyszerű megoldást?
Köszönöm.Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
Fejből példa. Legyenek a bal oszlopban a megrendelés fejek, a jobb oszlopban pedig a pozíciók.
Kulcs:
- OrderNr
Bal oszlop:
- OrderNr
- Date
Jobb oszlop:
- OrderNr
- Part
- Qty
Ezeket kell lekérdezni, és akkor LineNr legyen a pozíció száma, ami nyilván OrderNr-enként újra kezdődik.Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
válasz Chrystall #5798 üzenetére
A GRANT PROCESS ON *.*, gondolom, azt célozza, hogy minden adatbázis, minden táblájára meglegyen a jogosultság. Ami nem biztos, hogy menni fog.
Szerintem próbáld meg így: GRANT PROCESS ON database_name.* TO user@localhost;
De csak tipp, nem sokat dolgoztam mysql-lel.Alcohol & calculus don't mix. Never drink & derive.
-
Jim Tonic
nagyúr
Sziasztok!
Segítségetek kérném. TSQL.
Tábla:
Ceg | Adoszam | Datum | RelEgy céghez több adószám tartozik a táblában, de cégenként a legkésőbbi dátumot kellene kiválasztani, és ott Rel értékét 1-re állítani
Köszi.Alcohol & calculus don't mix. Never drink & derive.
Új hozzászólás Aktív témák
- Philips Evnia 42M2N8900 Gamer Oled Monitor!42"/4k/138hz/0,1ms/Freesync-Gsync/HDMI 2.1/TypeC/Ambiglow
- -56% HP EliteBook 840 G8:i7 1165G7,16GB RAM,512GB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- Monitortató plexi konzol több elérhető készletről MONITORCENTER
- -50% HP EliteBook 840 G8: i7 1165G7,32GB RAM,1TB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- 1.250.000 FT helyett 940.000 FT !! MacBook Pro 16" M3 Pro 12CPU / 18GPU / 18GB / 512 SSD