/**************************************************************************************/
/* File:        demo32                                                                */
/* Project:     ATSQL2 : Examples EXCEPT                                              */
/* Author:      Andreas Steiner                                                       */
/* Date:        19-09-1995                                                            */
/* Results:                                                                           */
/**************************************************************************************/

create table vt(i integer) as valid;
nonsequenced valid period '1990-1999'
insert into vt values (1111);

nonsequenced valid period '1994-1997'
insert into vt values (2222);

nonsequenced valid period '1992-1999'
insert into vt values (3333);


create table vt1(i integer) as valid;
nonsequenced valid period '1993-1997'
insert into vt1 values (1111);

nonsequenced valid period '1996-1998'
insert into vt1 values (2222);

nonsequenced valid period '1980-2000'
insert into vt1 values (3333);

valid (select * from vt except select * from vt1);

/*
                                        VALID         i
 -------------------------------------------- ---------
                                  [1990-1993)      1111
                                  [1994-1996)      2222
                                  [1997-1999)      1111
*/

drop table vt;
drop table vt1;


create table tt(i integer) as transaction;
create table tt1(i integer) as transaction;

set clock to timestamp '1980';
insert into tt1 values (3333);

set clock to timestamp '1990';
insert into tt values (1111);

set clock to timestamp '1992';
insert into tt values (3333);

set clock to timestamp '1993';
insert into tt1 values (1111);

set clock to timestamp '1994';
insert into tt values (2222);

set clock to timestamp '1996';
insert into tt1 values (2222);

set clock to timestamp '1997';
delete from tt where i = 2222;
delete from tt1 where i = 1111;

set clock to timestamp '1998';
delete from tt1 where i = 2222;

set clock to timestamp '1999';
delete from tt where i = 1111;
delete from tt where i = 3333;

set clock to timestamp '2000';
delete from tt1 where i = 3333;

transaction (select * from tt except select * from tt1);

/*
              TRANSACTION         i
 ------------------------ ---------
              [1994-1996)      2222
              [1990-1993)      1111
              [1997-1999)      1111
*/

 
drop table tt;
drop table tt1;

SET CALENDRIC SYSTEM decimal;

create table employee(eno integer, name char(20)) as valid and transaction;
create table salary(eno integer, amount integer) as valid and transaction;

set clock to timestamp '1';
nonsequenced valid period '1-4'
insert into employee values(9999, 'Maya');

set clock to timestamp '2';
nonsequenced valid period '2-3'
insert into salary values(9999, 4000);

set clock to timestamp '3';
nonsequenced valid 
delete from salary;

set clock to timestamp '4';
nonsequenced valid 
delete from employee;

valid and transaction
(select eno
 from   employee e 
 except
 select eno
 from   salary);

/*
              TRANSACTION                    VALID       eno
 ------------------------ ------------------------ ---------
                    [1-2)                    [1-4)      9999
                    [3-4)                    [1-4)      9999
                    [2-3)                    [1-2)      9999
                    [2-3)                    [3-4)      9999
*/

drop table employee;
drop table salary;
