esmė tokia:
įrašas sukuriamas vieną kartą ir jo sukūrimo data negali keistis (šiuo
atveju, tai yra labai svarbu duomenų įvedimo kontrolei užtikrinti), todėl aš
jį išsaugau tbl1 lauke ivedimo_data
tbl1 lentelėje yra laukas paskutinio_koregavimo_data. Kai įrašas
koreguojamas update automatiskai iterpia ten db serverio current datą.
Paskui
susirandu tą įrašą, paimu tą paskutinio koregavimo datą ir su atitinkamu
rec_id įterpiu į tbl2.
Jeigu įrašas nekoreguojamas, tbl2 neatsiranda jokios informacijos apie tą
įrašą. Neeikvoju be reikalo db vietos. :)
Dėl koregavimo datos. Tai paprasciausias sprendimas tureti tikslia
redagavimo data. :)
M atrodo, kad tavo union variantą bandžiau - selecte gaunasi po keli to
paties įrašo variantai. Na pabandysiu dar kartą patikrinti tavo variantą.
"cinic" wrote in message news:je0tbl$e76$1@trimpas.omnitel.net...
Užklausa čia paprasta:
select rec_id, pildymo data
from tbl1
where recid = :recid and pildymo_data between :d1 and :d2
union all
select rec_id, redagavimo_data
from tbl2
where recid = :recid and pildymo_data between :d1 and :d2
order by redagavimo_data
Pažiūrėjus plačiau, man atrodo, kad galima geriau padaryti tavo DB
struktūrą.
Kas dabar saugoma pas tave tbl1 ir tbl2? Toks jausmas, kad ir ten ir ten -
pakeitimų žurnalas.
Aš daryčiau taip: vienoje lentelėje saugočiau duomenis, o kitoje - jų
pakeitimo istoriją.
myDataTable
Id
OtherFields...
myDataTableChangeLog
id
dataTableId (link to myDataTable.Id)
date
action (new, filled-in, modified, deleted)