Sziasztok!
Találtam ezt a furcsa eredményt adó lekérdezést a postgresben, csatolom hozzá a táblát és a rekordot, amivel a hiba előjön. Ha valakinek van tippje, hogy mi okozhatja, ossza meg velem:)
SELECT SUM(ulaz)-SUM(izlaz) FROM proba;
Ennek a lekérdezésnek lesz üres rekord az eredménye, annak ellenére, hogy az ulaz mezőben 20 van.
CREATE TABLE proba (
magacin character varying(3),
roba bigint,
stroba character varying(9),
vs character varying(1),
dokument character varying(6),
pozicija character varying(6),
veza character varying(3),
komitent character varying(6),
datum date,
zavrtrosak double precision,
rabat real,
marza real,
dobit double precision,
tarifa character varying(5),
porez1 real,
porez2 real,
porez3 real,
ulaz double precision,
izlaz double precision,
zalihe double precision,
nabcena double precision,
proscena double precision,
cena double precision,
nabvred double precision,
nivvred double precision,
zuser character varying(10)
);
INSERT INTO proba VALUES ('301', 8605008915459, NULL, 'u', ' 381', NULL, NULL, ' 11190', '2006-07-07', 0, 0, 0, 33.299999999999997, NULL, 0, 0, 0, 20, NULL, NULL, 0, 92.700000000000003, 126, 1854, NULL, NULL);
- 1355 megtekintés
Hozzászólások
;-) Miert, szerinted 20-null az mennyi?
http://firebird.sourceforge.net/manual/nullguide-null-in-exps.html
Zsiraf
p.s.: A null az kb. ismeretlen-t jelent, ha matematikai, vagy logikai kifejezesrol van szo, tehat valami (+-/*...) ismeretlen = ismeretlen...
p.s2: meg annyit, ne lepodj meg, de pl. null = null hamis erteket ad, hiszen a null "sajat magaval" sem egyezik meg. Ezert vannak a null "felismeresere" kulon logikai muveletek: pl. IS NULL
- A hozzászóláshoz be kell jelentkezni
Elottem szolo mar irta a megfejtest, en annyit fuznek hozza, hogy en osszegzo lekerdezeseket fuggvenybe rakom es ebben az esetben feltetelhez szoktam kotni a lekerdezest.
pl. ha
"ulaz is null or izlaz is null"
akkor a fuggveny 0-val, vagy negativ szammal terjen vissza (attol fugg), kulonben meg ugorjon a lekerdezesre. Igy a frontendek is jobban toleraljak a result-ot es lehet kovetkeztetni arra is, hogy mi tortent. :-)
Szerk: Jobban megnezve felesleges mindkettot figyelned, egyszeruen csak tedd bele a select-ed eredmenyet egy segedvaltozoba a fuggvenyen belul, majd ird felul 0-val ha "result is null"
teljesul.
---------------------
Ригидус а бетегадьбол
- A hozzászóláshoz be kell jelentkezni
Kösz! Most már értem, hogy miért kellett eddig is időnként IS NULL-t használnom...
- A hozzászóláshoz be kell jelentkezni