Tema: Re: Dar vienas prašymas dėl SQL
Autorius: HyperLink
Data: 2012-01-04 09:16:08
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)