Új hozzászólás Aktív témák
-
nyunyu
félisten
-
nyunyu
félisten
Probléma az, hogy a WHERE után írt feltétel az globális.
Ha oda azt írja, hogy t19.ertek>19, akkor minden olyan rekordot vissza fog adni, ahol ez teljesül.
NULL értékekre definíció szerint <,=,> hasonlítás sem teljesül, emiatt kiszűri azokat, ahol csak a T20 táblában lenne jó érték, de a T19-ben nincs.LEFT/RIGHT/FULL JOINkor emiatt fokozottan figyelni kell a NULLokra.
Tehát valami ilyesmit tud csinálni, hogy
where (t19.ertek is null OR t19.ertek>19)
and ... többi feltétel. -
nyunyu
félisten
Egyáltalán kell egy plusz lekérdezés az Oracle specifikus from dual szintaxissal?
Nem lenne egyszerűbb egy
select nvl(count(*),0) from tablanev;[szerk:]Hmm,Oracle 11G2 amúgy is 0-t ad vissza count(*)-ra, ha nincs egy rekord se a táblában, nem NULL-t.
-
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");
-
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. -
kw3v865
senior tag
Most próbáltam így is, de hiába, sajnos nem megy.
Igen, a Management Studioban futtatom. Az övezeteket pedig ArcGIS-ben rajzolom.Tehát a lényeg az hogy az alábbival viszont jól lefut, HA csak egy sort commit-olok egyszerre:
ALTER TRIGGER nepesseg_szum ON OVEZETEK
AFTER INSERT
AS
BEGIN
DECLARE @TERULET GEOMETRYSET @TERULET = (SELECT SHAPE FROM INSERTED)
UPDATE OVEZETEK SET Nepesseg_ossz = (SELECT SUM(n.lakosok) from NEPESSEG_EOV N
WHERE N.SHAPE.STWithin(@TERULET)=1) WHERE OVEZETEK.OBJECTID=(SELECT OBJECTID FROM INSERTED); -
kw3v865
senior tag
Így gondoltad?
CREATE TRIGGER nepesseg_szum ON OVEZETEK
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO OVEZETEK (OBJECTID, SHAPE, Nepesseg_ossz) SELECT I.OBJECTID, I.SHAPE, (SELECT SUM(n.lakosok) from NEPESSEG n
WHERE N.SHAPE.STWithin(I.SHAPE)=1) FROM INSERTED IEND;
Nem jó, mert "Unspecified error occured on SQL Server. Connection amy be terminated by server", miután megrajzolom az övezet poligont, majd mentem (commit-olom).
-
kw3v865
senior tag
Egyelőre így néz ki jelenleg a triggerem a kurzorral, de a probléma továbbra is ugyanaz.
ALTER TRIGGER nepesseg_szum ON OVEZETEK
AFTER INSERT
AS
BEGINDECLARE @TERULET GEOMETRY
DECLARE @ID INTDECLARE @kurzor CURSOR
SET @kurzor = cursor FOR
SELECT SHAPE, OBJECTID FROM INSERTEDOPEN @kurzor
FETCH NEXT FROM @kurzor INTO @TERULET, @IDWHILE @@FETCH_STATUS = 0
BEGIN
UPDATE OVEZETEK SET Nepesseg_ossz = (SELECT SUM(n.lakosok) from NEPESSEG_EOV N
WHERE N.SHAPE.STWithin(@TERULET)=1) WHERE @ID=(SELECT OBJECTID FROM INSERTED);FETCH NEXT FROM @kurzor INTO @TERULET, @ID
ENDCLOSE @kurzor
DEALLOCATE @kurzor
END;Vajon hol ronthattam el?

-
kw3v865
senior tag
Köszönöm, így már elég jól működik, de még nem tökéletes: már csak arra kell megoldást találni, hogy ha egynél több sort szúrok be az övezetek táblába, akkor is működjön.
Tehát ha pl. 2 új sor van, akkor ezt írja ki: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Jól gondolom, hogy ehhez kurzort kellene használni?
-
DS39
nagyúr
vagy ha nincs egy konkrét érték amit vizsgálj, akkor az INSERTED selectjében ki cserélhetetd azt az oszlopértéket a belső selected sum-jára.
SELECT oszlop1, oszlop2,
(SELECT SUM (TELEPULES.LAKOSOK) FROM TELEPULES
WHERE TELEPULES.SHAPE.STWithin(I.SHAPE)=1),
oszlop4, oszlop5 ....
FROM INSERTED I(@terulet helyett bekerülendő shape oszlop értékét betéve, már nem kell tudd az objectid-t)
-
Cathfaern
nagyúr
Egy darab update-et kell írni, abban csak lecserélgetni az ID-kat. Nem úgy gondoltam, hogy kézzel irogassa át a táblákat
Sok mindent lehet rá írni persze, de ha 50x kell megcsinálni, akkor bármit is írsz rá az tovább fog tartani, mint ha megcsinálod kézzel. Feltéve, hogy elsőre jól írsz meg mindent, mert ha már valamit debugolni kell (akár egy elgépelést), akkor sokkal tovább fog tartani 
-
Petya25
őstag
Ha csak annyit szeretnél, hogy az egyik DB-ből átolvass egy másik szerver DB-jébe akkor ezzel nem kell így trükközni.
Csinálsz egy sql usert a távoli DB-ben.
Itt a Linked Server nevébe beírod a távoli szerver nevét, a Security fülön meg megadott Remote loginnak a távoli sql usert a jelszóval.
És átolvasol teljes útvonallal: select * from [gép].[db].dbo.[tábla] -
kezdosql
tag
Access2000 a feltetel, igy nem volt sok jelentkezo ra. Most mar tudom, hogy eleg dolgozgatnom, mert csak fizetgetni akarnak.
Eredetileg "normalisan" akartam megcsinalni, embereken belul alkalmazottak, de pont ok akartak, hogy csak az auto a lenyeg es azzal kapcsolatban kell minden, reszletesen, kulon. Most meg rajottek, hogy megis ugy kene, ahogy eredetileg javasoltam, mert az adatbevitel ugy sokkal egyszerubb. -
kezdosql
tag
-
martonx
veterán
Nem értettem teljesen a kérdésedet, de valami ilyesmi dinamikus lekérdezést szeretnél?
https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/
Azaz exec ('select * from table') - ahol a stringed igaziból bármi lehet, azt szépen végig fogja hajtani az sql motor.
-
DavidPetson
csendes tag
Kiegészítettem ezzel:
$sql = "SELECT * FROM member WHERE username = $username";
Kaptam ezt:
mysql_fetch_array() expects parameter 1 to be resource, boolean given
Ezt próbáltam mindenhogy, és mindig ez a válasza rá

Elvileg azt menti:
$_SESSION['SESS_MEMBER_ID'] = $member['mem_id'];
Új hozzászólás Aktív témák
- Eladó dobozos, fóliás THERMALTAKE The Tower 600 fehér ház
- Dell Alienware Nvidia Geforce RTX 2080 Super 8GB
- Aztech Szerviz I RETRO Számítógép Szerviz I Szervizelés, Telepítés, Adatmentés, Szoftveres Javítás
- Használt MSI mag321cup (VA panel, 31.5" (80 cm) 4k, 160Hz ,1ms) eladó.
- Apple iPhone XS Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- Xbox Series S 512 GB + kontroller 6 hó garancia, számlával!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Svájci jellegű bicska eladó
- Beszámítás! Apple MacBook Air 13 2020 M1 8GB RAM 256GB SSD notebook garanciával hibátlan működéssel
- Samsung Galaxy S23 Ultra 8/256GB Cream használt, karcos kijelző 6 hónap garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Köszönöm szépen a segítséget 


![;]](http://cdn.rios.hu/dl/s/v1.gif)
Nagyon köszi!!!! Tegnap óta rágódtam rajta, hogy mi a fenét szúrtam el, de nem ellenőriztem le ezt a táblát...

