Hirdetés

Új hozzászólás Aktív témák

  • nyunyu

    félisten

    válasz Postas99 #5701 üzenetére

    Ebből kb. ennyit sikerült megérteni:
    Egy kitétemény van még amennyiben egy FIX érték többször szerepel abbból csak a VALID értéket kell megjeleníteni amit a b.ervenyessegvege mező szabályoz. HA az érték NULL akkor az az adat a valid.

    De ezt sem teljesen.

    Ha az érvényességre akarsz szűrni, akkor kell a b tábla join feltételei közé (vagy a query végi WHERE-be) egy
    b.ervenyessegkezdete >= getdate() AND
    nvl(b.ervenyessegvege, getdate() +1 ) > getdate()

    (vagy hogy hívják MS SQL-ül az oracles sysdate-et)

    Viszont akkor az összes olyan találatot ki fogod szűrni, amihez már csak lejárt b rekordok vannak.
    Vagy ha kettőnek nincs lejárati dátuma, akkor mindkettőt megkapod.

    Egyébként meg az ilyen adathibák javítására hogy egy b-ből nincs érvényes (vagy több érvényes van), nem az a megoldás, hogy egy feleslegesen túlbonyolított queryvel próbálod kiszűrni őket, hanem kézzel be kéne updatelni az érintett rekordokon az érvényesség eleje, vége dátumokat JÓ értékre, hogy egy időszakra PONTOSAN EGY érvényes rekord legyen.

    (Tudom, könnyű ezt mondani, de a rendszerszervezőnknek tavaly nyár óta nincs ideje arra, hogy meghatározza, hogy a többszörös cím, meg telefonszám adataink közül melyik példányt tartsam meg érvényesnek. Közben volt még pár adatmigrációs projekt is, ami extra izgalmakat okozott. :DDD )

Új hozzászólás Aktív témák